This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 120195 - Fix the threading model for jsp parser
Summary: Fix the threading model for jsp parser
Status: NEW
Alias: None
Product: javaee
Classification: Unclassified
Component: JSP Parser (show other bugs)
Version: 6.x
Hardware: All All
: P1 blocker (vote)
Assignee: issues@javaee
URL:
Keywords: RANDOM
Depends on:
Blocks:
 
Reported: 2007-10-26 15:17 UTC by Tomasz Slota
Modified: 2013-01-02 09:58 UTC (History)
3 users (show)

See Also:
Issue Type: TASK
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tomasz Slota 2007-10-26 15:17:36 UTC
Today's build, hit a deadlock while calling "reformat page".

Stack trace:

"Inactive RequestProcessor thread [Was:TimedWeakReference/org.netbeans.modules.projectapi.TimedWeakReference]" daemon prio=1 tid=0x36ce2fa0 
nid=0x1869a00 in Object.wait() [0xb3c9b000..0xb3c9bd10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x06868b30> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)
        - locked <0x06868b30> (a java.lang.Object)

"Parser" daemon prio=1 tid=0x36ce2b90 nid=0x18b7a00 in Object.wait() [0xb3a9a000..0xb3a9ad10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x08915100> (a org.netbeans.modules.languages.dataobject.LanguagesEditorKit$LanguagesDocument)
        at java.lang.Object.wait(Object.java:474)
        at javax.swing.text.AbstractDocument.readLock(AbstractDocument.java:1392)
        - locked <0x08915100> (a org.netbeans.modules.languages.dataobject.LanguagesEditorKit$LanguagesDocument)
        at org.netbeans.editor.BaseDocument.render(BaseDocument.java:1203)
        at org.netbeans.modules.languages.ParserManagerImpl.createTokenInput(ParserManagerImpl.java:360)
        at org.netbeans.modules.languages.ParserManagerImpl.parse(ParserManagerImpl.java:352)
        at org.netbeans.modules.languages.ParserManagerImpl.parseAST(ParserManagerImpl.java:304)
        at org.netbeans.modules.languages.ParserManagerImpl.access$100(ParserManagerImpl.java:84)
        at org.netbeans.modules.languages.ParserManagerImpl$1.run(ParserManagerImpl.java:174)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)

"JSP Parsing" daemon prio=9 tid=0x36ce26d0 nid=0x199e000 in Object.wait() [0xb3899000..0xb3899d10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x08915100> (a org.netbeans.modules.languages.dataobject.LanguagesEditorKit$LanguagesDocument)
        at java.lang.Object.wait(Object.java:474)
        at javax.swing.text.AbstractDocument.readLock(AbstractDocument.java:1392)
        - locked <0x08915100> (a org.netbeans.modules.languages.dataobject.LanguagesEditorKit$LanguagesDocument)
        at org.netbeans.editor.BaseDocument.write(BaseDocument.java:1316)
        at org.netbeans.editor.BaseKit.write(BaseKit.java:637)
        at org.openide.text.DataEditorSupport.saveFromKitToStream(DataEditorSupport.java:371)
        at org.openide.text.CloneableEditorSupport.getInputStream(CloneableEditorSupport.java:1343)
        at org.netbeans.modules.web.core.jsploader.JspParserAccess$WM.getEditorInputStream(JspParserAccess.java:134)
        at org.netbeans.modules.web.jspparser.ParserServletContext.getResourceAsStream(ParserServletContext.java:314)
        at org.apache.jasper.JspCompilationContext.getResourceAsStream(JspCompilationContext.java:304)
        at org.apache.jasper.compiler.JspUtil.getInputStream(JspUtil.java:890)
        at org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:127)
        at org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:360)
        at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:194)
        at org.apache.jasper.compiler.ParserController.parse(ParserController.java:124)
        at org.apache.jasper.compiler.GetParseData.parse(GetParseData.java:150)
        at org.netbeans.modules.web.jspparser_ext.WebAppParseSupport$3.run(WebAppParseSupport.java:760)

"background jsp parsing" daemon prio=9 tid=0x36cd5040 nid=0x186a800 in Object.wait() [0xb2c93000..0xb2c93d10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x0683fb50> (a org.netbeans.modules.web.jspparser_ext.WebAppParseSupport$3)
        at java.lang.Thread.join(Thread.java:1113)
        - locked <0x0683fb50> (a org.netbeans.modules.web.jspparser_ext.WebAppParseSupport$3)
        at java.lang.Thread.join(Thread.java:1166)
        at org.netbeans.modules.web.jspparser_ext.WebAppParseSupport.callTomcatParser(WebAppParseSupport.java:779)
        at org.netbeans.modules.web.jspparser_ext.WebAppParseSupport.analyzePage(WebAppParseSupport.java:431)
        at org.netbeans.modules.web.jspparser.JspParserImpl.analyzePage(JspParserImpl.java:163)
        at org.netbeans.modules.web.core.jsploader.TagLibParseSupport$ParsingRunnable.run(TagLibParseSupport.java:366)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)

"Default RequestProcessor" daemon prio=1 tid=0x36cd5f50 nid=0x1ab6400 in Object.wait() [0xb2810000..0xb2810d10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x08915100> (a org.netbeans.modules.languages.dataobject.LanguagesEditorKit$LanguagesDocument)
        at java.lang.Object.wait(Object.java:474)
        at javax.swing.text.AbstractDocument.readLock(AbstractDocument.java:1392)
        - locked <0x08915100> (a org.netbeans.modules.languages.dataobject.LanguagesEditorKit$LanguagesDocument)
        at org.netbeans.editor.ext.html.parser.SyntaxParser.getElementChain(SyntaxParser.java:232)
        at org.netbeans.editor.ext.html.parser.SyntaxParser.reallyParse(SyntaxParser.java:187)
        at org.netbeans.editor.ext.html.parser.SyntaxParser.parse(SyntaxParser.java:174)
        at org.netbeans.editor.ext.html.parser.SyntaxParser.access$200(SyntaxParser.java:66)
        at org.netbeans.editor.ext.html.parser.SyntaxParser$2.run(SyntaxParser.java:120)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)

"GSF Source Worker Thread" prio=6 tid=0x36c7a500 nid=0x18ec800 waiting on condition [0xb50a5000..0xb50a5d10]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1803)
        at java.util.concurrent.PriorityBlockingQueue.poll(PriorityBlockingQueue.java:236)
        at org.netbeans.api.retouche.source.Source$CompilationJob.run(Source.java:1126)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
        at java.util.concurrent.FutureTask.run(FutureTask.java:123)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:613)

"org.netbeans.modules.retouche.source.usages.RepositoryUpdater" prio=6 tid=0x36c513e0 nid=0x193c400 in Object.wait() [0xb48a1000..0xb48a1d10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x08e95bf0> (a java.util.TaskQueue)
        at java.lang.Object.wait(Object.java:474)
        at java.util.TimerThread.mainLoop(Timer.java:483)
        - locked <0x08e95bf0> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:462)

"pool-2-thread-1" prio=5 tid=0x36c33d50 nid=0x185f400 waiting on condition [0xb4ca3000..0xb4ca3d10]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)
        at java.lang.Thread.run(Thread.java:613)

"DestroyJavaVM" prio=5 tid=0x00501c40 nid=0x1804c00 waiting on condition [0x00000000..0xb0800000]

"AWT-EventQueue-1" prio=6 tid=0x005ed530 nid=0x19f2600 in Object.wait() [0xb429e000..0xb429ed10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x0681ea40> (a org.openide.util.RequestProcessor$Task)
        at java.lang.Object.wait(Object.java:474)
        at org.openide.util.Task.waitFinished(Task.java:130)
        - locked <0x0681ea40> (a org.openide.util.RequestProcessor$Task)
        at org.openide.util.RequestProcessor$Task.waitFinished(RequestProcessor.java:745)
        at org.netbeans.modules.web.core.jsploader.TagLibParseSupport.getCachedParseResult(TagLibParseSupport.java:315)
        at org.netbeans.modules.web.core.jsploader.JspContextInfoImpl.getCachedParseResult(JspContextInfoImpl.java:125)
        at org.netbeans.modules.web.core.jsploader.JspContextInfoImpl.getCachedParseResult(JspContextInfoImpl.java:131)
        at org.netbeans.modules.web.core.syntax.JspUtils.getCachedParseResult(JspUtils.java:108)
        at org.netbeans.modules.web.core.syntax.JspUtils.getCachedParseResult(JspUtils.java:112)
        at org.netbeans.modules.web.core.syntax.SimplifiedJSPServlet.process(SimplifiedJSPServlet.java:149)
        at org.netbeans.modules.web.core.syntax.JavaSourceProviderImpl$FilterImpl.filterCharSequence(JavaSourceProviderImpl.java:129)
        at org.netbeans.modules.java.source.parsing.SourceFileObject.getCharContentImpl(SourceFileObject.java:391)
        at org.netbeans.modules.java.source.parsing.SourceFileObject.getCharContent(SourceFileObject.java:129)
        at org.netbeans.modules.java.source.parsing.SourceFileObject.getCharContent(SourceFileObject.java:81)
        at com.sun.tools.javac.main.JavaCompiler.readSource(JavaCompiler.java:500)
        at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:567)
        at com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:822)
        at com.sun.tools.javac.api.JavacTaskImpl.parse(JavacTaskImpl.java:278)
        at com.sun.tools.javac.api.JavacTaskImpl.parse(JavacTaskImpl.java:254)
        at org.netbeans.api.java.source.JavaSource.moveToPhase(JavaSource.java:1163)
        at org.netbeans.api.java.source.CompilationController.toPhase(CompilationController.java:104)
        at org.netbeans.modules.java.source.save.Reformatter$1.run(Reformatter.java:87)
        at org.netbeans.modules.java.source.save.Reformatter$1.run(Reformatter.java:86)
        at org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:602)
        at org.netbeans.modules.java.source.save.Reformatter.reformat(Reformatter.java:85)
        at org.netbeans.modules.editor.indent.TaskHandler$MimeItem.runTask(TaskHandler.java:449)
        at org.netbeans.modules.editor.indent.TaskHandler.runTasks(TaskHandler.java:229)
        at org.netbeans.modules.editor.indent.IndentImpl.reformat(IndentImpl.java:285)
        at org.netbeans.modules.editor.indent.FormatterImpl.reformat(FormatterImpl.java:161)
        at org.netbeans.editor.ActionFactory$FormatAction.actionPerformed(ActionFactory.java:1550)
        at org.netbeans.editor.BaseAction.actionPerformed(BaseAction.java:290)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:334)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
        at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
        at java.awt.Component.processMouseEvent(Component.java:5554)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
        at java.awt.Component.processEvent(Component.java:5319)
        at java.awt.Container.processEvent(Container.java:2010)
        at java.awt.Component.dispatchEventImpl(Component.java:4021)
        at java.awt.Container.dispatchEventImpl(Container.java:2068)
        at java.awt.Component.dispatchEvent(Component.java:3869)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3936)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866)
        at java.awt.Container.dispatchEventImpl(Container.java:2054)
        at java.awt.Window.dispatchEventImpl(Window.java:1774)
        at java.awt.Component.dispatchEvent(Component.java:3869)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

"*** JFluid Separate Command Execution Thread" daemon prio=5 tid=0x005eb590 nid=0x19a5800 in Object.wait() [0xb409d000..0xb409dd10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x08576b98> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:474)
        at org.netbeans.lib.profiler.ProfilerClient$SeparateCmdExecutionThread.run(ProfilerClient.java:104)
        - locked <0x08576b98> (a java.lang.Object)

"Creator Error Handler Listener" prio=5 tid=0x005e6970 nid=0x1a56000 runnable [0xb3e9c000..0xb3e9cd10]
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
        - locked <0x08555008> (a java.net.SocksSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:450)
        at java.net.ServerSocket.accept(ServerSocket.java:421)
        at org.netbeans.modules.visualweb.errorhandler.DebugServerThread.run(DebugServerThread.java:115)

"Repository writer 0" daemon prio=1 tid=0x005d7770 nid=0x19a4600 waiting on condition [0xb3497000..0xb3497d10]
        at java.lang.Thread.sleep(Native Method)
        at org.netbeans.modules.cnd.repository.queue.RepositoryWritingThread.waitReady(RepositoryWritingThread.java:94)
        at org.netbeans.modules.cnd.repository.queue.RepositoryWritingThread.run(RepositoryWritingThread.java:128)
        at org.netbeans.modules.cnd.repository.queue.RepositoryThreadManager$Wrapper.run(RepositoryThreadManager.java:84)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)

"TimerQueue" daemon prio=5 tid=0x005cda40 nid=0x1952e00 runnable [0xb3698000..0xb3698d10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x084132c0> (a javax.swing.TimerQueue)
        at javax.swing.TimerQueue.run(TimerQueue.java:233)
        - locked <0x084132c0> (a javax.swing.TimerQueue)
        at java.lang.Thread.run(Thread.java:613)

"Java Source Worker Thread" prio=5 tid=0x005c4500 nid=0x1872c00 waiting on condition [0xb3296000..0xb3296d10]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:681)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:711)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1041)
        at java.util.concurrent.locks.ReentrantLock$FairSync.lock(ReentrantLock.java:197)
        at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:256)
        at org.netbeans.api.java.source.JavaSource$CompilationJob.run(JavaSource.java:1508)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
        at java.util.concurrent.FutureTask.run(FutureTask.java:123)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:613)

"Thread-4" daemon prio=5 tid=0x005ab7a0 nid=0x18c3a00 in Object.wait() [0xb3095000..0xb3095d10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x0818f438> (a java.util.LinkedList)
        at java.lang.Object.wait(Object.java:474)
        at java.util.prefs.AbstractPreferences$EventDispatchThread.run(AbstractPreferences.java:1456)
        - locked <0x0818f438> (a java.util.LinkedList)

"Code Model Parser 0" daemon prio=1 tid=0x0056a280 nid=0x195a600 in Object.wait() [0xb2e94000..0xb2e94d10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x084c3ea0> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:474)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserQueue.waitReady(ParserQueue.java:378)
        - locked <0x084c3ea0> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:69)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:82)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)

"Java2D Disposer" daemon prio=10 tid=0x00522710 nid=0x1879800 in Object.wait() [0xb2a92000..0xb2a92d10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x0794c3a8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x0794c3a8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at sun.java2d.Disposer.run(Disposer.java:123)
        at java.lang.Thread.run(Thread.java:613)

"AWT-Shutdown" prio=5 tid=0x00521250 nid=0x1826c00 in Object.wait() [0xb200c000..0xb200cd10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x0794c3d0> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:474)
        at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
        - locked <0x0794c3d0> (a java.lang.Object)
        at java.lang.Thread.run(Thread.java:613)

"AWT-AppKit" daemon prio=5 tid=0x00520b10 nid=0xa000d000 runnable [0x00000000..0xbfffdc9c]

"Code Model Parser 1" daemon prio=1 tid=0x0051ac40 nid=0x186a400 in Object.wait() [0xb260f000..0xb260fd10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x084c3ea0> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:474)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserQueue.waitReady(ParserQueue.java:378)
        - locked <0x084c3ea0> (a java.lang.Object)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:69)
        at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:82)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)

"Timer-0" daemon prio=5 tid=0x00519d00 nid=0x1867400 in Object.wait() [0xb240e000..0xb240ed10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x0794c548> (a java.util.TaskQueue)
        at java.util.TimerThread.mainLoop(Timer.java:509)
        - locked <0x0794c548> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:462)

"CLI Requests Server" daemon prio=5 tid=0x00519390 nid=0x1867000 runnable [0xb220d000..0xb220dd10]
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
        - locked <0x0794c568> (a java.net.SocksSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:450)
        at java.net.ServerSocket.accept(ServerSocket.java:421)
        at org.netbeans.CLIHandler$Server.run(CLIHandler.java:1003)

"Active Reference Queue Daemon" daemon prio=1 tid=0x00516840 nid=0x1840800 in Object.wait() [0xb1e0b000..0xb1e0bd10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x0794c688> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x0794c688> (a java.lang.ref.ReferenceQueue$Lock)
        at org.openide.util.Utilities$ActiveQueue.run(Utilities.java:3057)
        at java.lang.Thread.run(Thread.java:613)

"Low Memory Detector" daemon prio=5 tid=0x0050f100 nid=0x1818600 runnable [0x00000000..0x00000000]

"CompilerThread0" daemon prio=9 tid=0x0050e620 nid=0x1811a00 waiting on condition [0x00000000..0xb180874c]

"Signal Dispatcher" daemon prio=9 tid=0x0050dd10 nid=0x1811600 waiting on condition [0x00000000..0x00000000]

"JDWP Event Helper Thread" daemon prio=5 tid=0x0050d5b0 nid=0x1811200 runnable [0x00000000..0x00000000]

"JDWP Transport Listener: dt_socket" daemon prio=5 tid=0x0050c6f0 nid=0x1810e00 runnable [0x00000000..0x00000000]

"Finalizer" daemon prio=8 tid=0x00507dd0 nid=0x1813200 in Object.wait() [0xb1004000..0xb1004d10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x0794c770> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x0794c770> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x005079d0 nid=0x1812e00 in Object.wait() [0xb0e03000..0xb0e03d10]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x0794c450> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:474)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        - locked <0x0794c450> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=9 tid=0x005071a0 nid=0x1812a00 runnable 

"VM Periodic Task Thread" prio=9 tid=0x0050fdb0 nid=0x1818a00 waiting on condition 

"Exception Catcher Thread" prio=10 tid=0x00501e90 nid=0x1805000 runnable
Comment 1 Marek Fukala 2007-10-30 13:53:18 UTC
The problem happens because of the indentation infrastrucure writeLocks the document before calling the invidual
formatters. The java reformatter calls to SimplifiedJSPServlet which calls to jsp parser to get the parse data for the
page. Unfortunatelly the jsp parser runs in a task in different thread and the caller is blocked until the task
finishes. In the parser task CloneableEditorSupport.getInputStream() is called which then causes another call to
writeLock() on the document. The thread is blocked on the writeLock() and hence the two threads never finishes.

A solution seems to be to call the jsp parser synchrnously in the EDT thread so the subsequent writeLock() will not block.

I try to fix it.
Comment 2 Marek Fukala 2007-10-31 12:28:01 UTC
workarounded, just downgrading since the proper fix still needs to be do in TagLibParseSupport as described in my last
comment.

Checking in SimplifiedJSPServlet.java;
/cvs/web/jspsyntax/src/org/netbeans/modules/web/core/syntax/SimplifiedJSPServlet.java,v  <--  SimplifiedJSPServlet.java
new revision: 1.29; previous revision: 1.28
done
Comment 3 Marek Fukala 2008-08-21 11:23:31 UTC
the applied fix seems to be sufficient, changing to task, no user impact now