Bug 152894 - Edit/Highlight loop causes 5s-10s EDT pauses
Edit/Highlight loop causes 5s-10s EDT pauses
Status: RESOLVED FIXED
Product: groovy
Classification: Unclassified
Component: Editor
6.x
All All
: P3 with 6 votes (vote)
: 6.x
Assigned To: Petr Hejl
issues@groovy
:
: 142329 156525 157092 158950 (view as bug list)
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2008-11-10 17:28 UTC by shemnon
Modified: 2009-04-16 14:11 UTC (History)
7 users (show)

See Also:
Issue Type: DEFECT
:


Attachments
thread dump during IDE freeze (2/22 daily build) (18.70 KB, text/plain)
2009-02-24 14:12 UTC, hippy
Details

Note You need to log in before you can comment on or make changes to this bug.
Description shemnon 2008-11-10 17:28:42 UTC
Editing and then highlighting code in the groovy editor causes the whole GUI to freeze for 5s-10s at a time.  

This is really bad when you are in a code-rearrangement loop where copying and pasting large sections of code require
large block highlights.  This makes NetBeans unsuitable for my current work.  Too bad, because I really wanted to come
back from IntelliJ.

To reproduce:
1) load up some suitably large Groovy file (like Console.groovy from the groovy source distribution)
2) edit some line (add/remove a space is good, or adding a comment)
3) highlight some data
GUI will freeze (notice cursor stops blinking)


Incriminating stacktrace --

2008-11-10 10:02:56
Full thread dump Java HotSpot(TM) Server VM (11.0-b15 mixed mode):

"Java Source Worker Thread" daemon prio=2 tid=0x2cfe9400 nid=0xf3c runnable [0x3619e000..0x3619fa68]
   java.lang.Thread.State: RUNNABLE
        at java.io.WinNTFileSystem.getLastModifiedTime(Native Method)
        at java.io.File.lastModified(File.java:826)
        at java.util.zip.ZipFile.<init>(ZipFile.java:114)
        at java.util.jar.JarFile.<init>(JarFile.java:133)
        at java.util.jar.JarFile.<init>(JarFile.java:70)
        at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:72)
        at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:48)
        at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:78)
        at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:104)
        at sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:132)
        at sun.misc.URLClassPath$Loader.getResource(URLClassPath.java:501)
        at sun.misc.URLClassPath.getResource(URLClassPath.java:168)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:192)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at org.openide.execution.NbClassLoader.findClass(NbClassLoader.java:209)
        at org.netbeans.api.java.classpath.ClassLoaderSupport.findClass(ClassLoaderSupport.java:114)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        - locked <0x292c7368> (a org.netbeans.api.java.classpath.ClassLoaderSupport)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:300)
        - locked <0x29337308> (a groovy.lang.GroovyClassLoader)
        at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:633)
        at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:491)
        at org.codehaus.groovy.control.ResolveVisitor.resolveToClass(ResolveVisitor.java:605)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:251)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromModule(ResolveVisitor.java:549)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:251)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:219)
        at org.codehaus.groovy.control.ResolveVisitor.transformVariableExpression(ResolveVisitor.java:815)
        at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:637)
        at org.codehaus.groovy.control.ResolveVisitor.transformBinaryExpression(ResolveVisitor.java:860)
        at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:643)
        at org.codehaus.groovy.control.ResolveVisitor.transformBinaryExpression(ResolveVisitor.java:841)
        at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:643)
        at org.codehaus.groovy.ast.expr.BooleanExpression.transformExpression(BooleanExpression.java:44)
        at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:654)
        at
org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitAssertStatement(ClassCodeExpressionTransformer.java:114)
        at org.codehaus.groovy.ast.stmt.AssertStatement.visit(AssertStatement.java:47)
        at org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:37)
        at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:129)
        at org.codehaus.groovy.control.ResolveVisitor.visitBlockStatement(ResolveVisitor.java:1021)
        at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:52)
        at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:73)
        at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:80)
        at
org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitConstructorOrMethod(ClassCodeExpressionTransformer.java:53)
        at org.codehaus.groovy.control.ResolveVisitor.visitConstructorOrMethod(ResolveVisitor.java:166)
        at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:88)
        at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:822)
        at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:48)
        at org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:1000)
        at org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisitor.java:141)
        at org.codehaus.groovy.control.CompilationUnit$5.call(CompilationUnit.java:527)
        at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:772)
        at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:438)
        at org.netbeans.modules.groovy.editor.parser.GroovyParser.parseBuffer(GroovyParser.java:444)
        at org.netbeans.modules.groovy.editor.parser.GroovyParser.parseFiles(GroovyParser.java:120)
        at org.netbeans.modules.groovy.editor.parser.SourceUtils.runUserActionTask(SourceUtils.java:102)
        at
org.netbeans.modules.groovy.editor.parser.GroovyVirtualSourceProvider.getClassNodes(GroovyVirtualSourceProvider.java:131)
        at
org.netbeans.modules.groovy.editor.parser.GroovyVirtualSourceProvider.translate(GroovyVirtualSourceProvider.java:90)
        at org.netbeans.modules.java.source.usages.VirtualSourceProviderQuery.translate(VirtualSourceProviderQuery.java:125)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker.parseFiles(RepositoryUpdater.java:2169)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker.updateFolder(RepositoryUpdater.java:2279)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker.scanRoots(RepositoryUpdater.java:1812)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker.access$2700(RepositoryUpdater.java:1256)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker$1.run(RepositoryUpdater.java:1407)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker$1.run(RepositoryUpdater.java:1299)
        at org.netbeans.modules.java.source.usages.ClassIndexManager.writeLock(ClassIndexManager.java:99)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker.run(RepositoryUpdater.java:1296)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker.run(RepositoryUpdater.java:1256)
        at org.netbeans.api.java.source.JavaSource$CompilationJob.run(JavaSource.java:1618)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)

"Default RequestProcessor" daemon prio=2 tid=0x2cfe9800 nid=0xf70 in Object.wait() [0x3108f000..0x3108fae8]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12f3aa40> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at org.netbeans.modules.tasklist.impl.FileScanningWorker.run(FileScanningWorker.java:205)
        - locked <0x12f3aa40> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

"GSF Source Worker Thread" daemon prio=2 tid=0x2cfe7c00 nid=0x176c waiting on condition [0x3579f000..0x3579fb68]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x13a22330> (a java.util.concurrent.CountDownLatch$Sync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
        at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:905)
        at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1217)
        at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
        at org.netbeans.api.java.source.JavaSource$ScanSync.get(JavaSource.java:2485)
        at org.netbeans.api.java.source.JavaSource$ScanSync.get(JavaSource.java:2444)
        at org.netbeans.modules.groovy.editor.parser.NbCompilationUnit$NbCompileUnit.getClass(NbCompilationUnit.java:99)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromCompileUnit(ResolveVisitor.java:427)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:251)
        at org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:969)
        at org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisitor.java:141)
        at org.codehaus.groovy.control.CompilationUnit$5.call(CompilationUnit.java:527)
        at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:772)
        at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:438)
        at org.netbeans.modules.groovy.editor.parser.GroovyParser.parseBuffer(GroovyParser.java:444)
        at org.netbeans.modules.groovy.editor.parser.GroovyParser.parseFiles(GroovyParser.java:120)
        at org.netbeans.napi.gsfret.source.Source.moveToPhase(Source.java:1056)
        at org.netbeans.napi.gsfret.source.Source$CompilationJob.run(Source.java:1399)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)

"Inactive RequestProcessor thread [Was:TimedSoftReference/org.openide.util.TimedSoftReference]" daemon prio=2
tid=0x2cfeac00 nid=0x164c in Object.wait() [0x3699f000..0x3699fc68]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12d9fbc8> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:950)
        - locked <0x12d9fbc8> (a java.lang.Object)

"org.netbeans.modules.gsfret.source.usages.RepositoryUpdater" daemon prio=2 tid=0x2cfea400 nid=0xebc in Object.wait()
[0x3679f000..0x3679fce8]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12d9fd90> (a java.util.TaskQueue)
        at java.lang.Object.wait(Object.java:485)
        at java.util.TimerThread.mainLoop(Timer.java:483)
        - locked <0x12d9fd90> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:462)

"Inactive RequestProcessor thread
[Was:EditorBracesMatching/org.netbeans.modules.editor.bracesmatching.MasterMatcher$Result]" daemon prio=2 tid=0x2cfe8c00
nid=0xb7c in Object.wait() [0x35f9f000..0x35f9fa68]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12da01e0> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:950)
        - locked <0x12da01e0> (a java.lang.Object)

"DestroyJavaVM" prio=6 tid=0x2cfe7800 nid=0x91c waiting on condition [0x00000000..0x024ffd20]
   java.lang.Thread.State: RUNNABLE

"AWT-EventQueue-1" prio=6 tid=0x2cfe6c00 nid=0x1374 waiting on condition [0x34f7f000..0x34f7fce8]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x12ef52a0> (a java.util.concurrent.locks.ReentrantLock$FairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:778)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1114)
        at java.util.concurrent.locks.ReentrantLock$FairSync.lock(ReentrantLock.java:201)
        at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262)
        at org.netbeans.napi.gsfret.source.Source.runUserActionTask(Source.java:450)
        at org.netbeans.modules.gsfret.editor.codetemplates.GsfCodeTemplateFilter.<init>(GsfCodeTemplateFilter.java:84)
        at org.netbeans.modules.gsfret.editor.codetemplates.GsfCodeTemplateFilter.<init>(GsfCodeTemplateFilter.java:68)
        at
org.netbeans.modules.gsfret.editor.codetemplates.GsfCodeTemplateFilter$Factory.createFilter(GsfCodeTemplateFilter.java:120)
        at
org.netbeans.lib.editor.codetemplates.CodeTemplateManagerOperation.getTemplateFilters(CodeTemplateManagerOperation.java:226)
        at org.netbeans.lib.editor.codetemplates.SurroundWithFix.getFixes(SurroundWithFix.java:71)
        at org.netbeans.lib.editor.codetemplates.AbbrevDetection.showSurroundWithHint(AbbrevDetection.java:424)
        at org.netbeans.lib.editor.codetemplates.AbbrevDetection.access$100(AbbrevDetection.java:93)
        at org.netbeans.lib.editor.codetemplates.AbbrevDetection$1.actionPerformed(AbbrevDetection.java:186)
        at javax.swing.Timer.fireActionPerformed(Timer.java:271)
        at javax.swing.Timer$DoPostEvent.run(Timer.java:201)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

"TimerQueue" daemon prio=6 tid=0x2cfe6400 nid=0x140c in Object.wait() [0x2f38f000..0x2f38fd68]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12613480> (a javax.swing.TimerQueue)
        at javax.swing.TimerQueue.run(TimerQueue.java:236)
        - locked <0x12613480> (a javax.swing.TimerQueue)
        at java.lang.Thread.run(Thread.java:619)

"Inactive RequestProcessor thread [Was:Folder recognizer/org.openide.loaders.FolderList$ListTask]" daemon prio=2
tid=0x2cfe5800 nid=0x1124 in Object.wait() [0x34b7f000..0x34b7fa68]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12622700> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:950)
        - locked <0x12622700> (a java.lang.Object)

"Inactive RequestProcessor thread [Was:SelectionAwareSourceTaskFactory worker/or
g.netbeans.napi.gsfret.source.support.SelectionAwareSourceTaskFactory$ComponentL
istener$1]" daemon prio=2 tid=0x2cfe5400 nid=0x141c in Object.wait() [0x3497f000
..0x3497fae8]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12622428> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:950)
        - locked <0x12622428> (a java.lang.Object)

"Thread-4" daemon prio=6 tid=0x2cfe4c00 nid=0x142c in Object.wait() [0x3477f000.
.0x3477fb68]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12509300> (a java.util.LinkedList)
        at java.lang.Object.wait(Object.java:485)
        at java.util.prefs.AbstractPreferences$EventDispatchThread.run(AbstractP
references.java:1461)
        - locked <0x12509300> (a java.util.LinkedList)

"*** JFluid Separate Command Execution Thread" daemon prio=6 tid=0x2cfe4800 nid=
0x6d8 in Object.wait() [0x3128f000..0x3128fbe8]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12623f68> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at org.netbeans.lib.profiler.ProfilerClient$SeparateCmdExecutionThread.r
un(ProfilerClient.java:101)
        - locked <0x12623f68> (a java.lang.Object)

"Inactive RequestProcessor thread [Was:EditorBracesMatching/org.netbeans.modules
.editor.bracesmatching.MasterMatcher$Result]" daemon prio=2 tid=0x2cfe3c00 nid=0
xa0 in Object.wait() [0x30e8f000..0x30e8fce8]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x124359f8> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:950)
        - locked <0x124359f8> (a java.lang.Object)

"AWT-Shutdown" prio=6 tid=0x2ce6c000 nid=0x103c in Object.wait() [0x2f18f000..0x
2f18f9e8]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11ddfff0> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
        - locked <0x11ddfff0> (a java.lang.Object)
        at java.lang.Thread.run(Thread.java:619)

"Active Reference Queue Daemon" daemon prio=2 tid=0x2cf73000 nid=0x10cc in Objec
t.wait() [0x2ef8f000..0x2ef8fa68]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11fcc430> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x11fcc430> (a java.lang.ref.ReferenceQueue$Lock)
        at org.openide.util.Utilities$ActiveQueue.run(Utilities.java:3088)
        at java.lang.Thread.run(Thread.java:619)

"Inactive RequestProcessor thread [Was:Document Processing/org.openide.text.Clon
eableEditorSupport$2]" daemon prio=2 tid=0x2cef8400 nid=0xb68 in Object.wait() [
0x2eb8f000..0x2eb8fb68]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11fe1328> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:950)
        - locked <0x11fe1328> (a java.lang.Object)

"Timer-0" daemon prio=6 tid=0x2cf37c00 nid=0x1204 in Object.wait() [0x2e98f000..
0x2e98fbe8]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11fe19c0> (a java.util.TaskQueue)
        at java.util.TimerThread.mainLoop(Timer.java:509)
        - locked <0x11fe19c0> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:462)

"CLI Requests Server" daemon prio=6 tid=0x2cea5400 nid=0x8c8 runnable [0x2e18f00
0..0x2e18fc68]
   java.lang.Thread.State: RUNNABLE
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
        - locked <0x11fe9020> (a java.net.SocksSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:453)
        at java.net.ServerSocket.accept(ServerSocket.java:421)
        at org.netbeans.CLIHandler$Server.run(CLIHandler.java:1010)

"AWT-Windows" daemon prio=6 tid=0x2cf38000 nid=0x1684 runnable [0x2e38f000..0x2e
38f9e8]
   java.lang.Thread.State: RUNNABLE
        at sun.awt.windows.WToolkit.eventLoop(Native Method)
        at sun.awt.windows.WToolkit.run(WToolkit.java:291)
        at java.lang.Thread.run(Thread.java:619)

"Java2D Disposer" daemon prio=10 tid=0x2cf37400 nid=0xd78 in Object.wait() [0x2d
f8f000..0x2df8fae8]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11fc08d0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x11fc08d0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at sun.java2d.Disposer.run(Disposer.java:125)
        at java.lang.Thread.run(Thread.java:619)

"RMI TCP Accept-0" daemon prio=6 tid=0x2c45a400 nid=0x12f4 runnable [0x2d2bf000.
.0x2d2bfc68]
   java.lang.Thread.State: RUNNABLE
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
        - locked <0x11fcbc98> (a java.net.SocksSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:453)
        at java.net.ServerSocket.accept(ServerSocket.java:421)
        at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRM
IServerSocketFactory.java:34)
        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTr
ansport.java:369)
        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:3
41)
        at java.lang.Thread.run(Thread.java:619)

"Low Memory Detector" daemon prio=6 tid=0x021f7c00 nid=0x8a8 runnable [0x0000000
0..0x00000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread1" daemon prio=10 tid=0x021f5000 nid=0xcbc waiting on condition [
0x00000000..0x00d4f450]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=10 tid=0x021f4800 nid=0x1070 waiting on condition
[0x00000000..0x003ff0d0]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" daemon prio=10 tid=0x021f0c00 nid=0x1738 runnable [0x00000000.
.0x00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x021f0800 nid=0x1568 waiting on conditio
n [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=0x021e0000 nid=0xc24 in Object.wait() [0x2bcff000.
.0x2bcffb68]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11fa9958> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x11fa9958> (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=0x021da400 nid=0xd24 in Object.wait() [0x
2baff000..0x2baffbe8]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11fa9910> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:485)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        - locked <0x11fa9910> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x021d7000 nid=0xa30 runnable

"GC task thread#0 (ParallelGC)" prio=6 tid=0x02124c00 nid=0xa54 runnable

"GC task thread#1 (ParallelGC)" prio=6 tid=0x02126000 nid=0x19c runnable

"VM Periodic Task Thread" prio=10 tid=0x2c4d8000 nid=0x12cc waiting on condition


JNI global references: 2154

Heap
 PSYoungGen      total 44032K, used 28065K [0x28980000, 0x2b700000, 0x2b700000)
  eden space 41664K, 62% used [0x28980000,0x2a320428,0x2b230000)
  from space 2368K, 77% used [0x2b490000,0x2b658070,0x2b6e0000)
  to   space 2432K, 0% used [0x2b230000,0x2b230000,0x2b490000)
 PSOldGen        total 47168K, used 40215K [0x11d00000, 0x14b10000, 0x28980000)
  object space 47168K, 85% used [0x11d00000,0x14445c60,0x14b10000)
 PSPermGen       total 77056K, used 45309K [0x05500000, 0x0a040000, 0x11d00000)
  object space 77056K, 58% used [0x05500000,0x0813f520,0x0a040000)

This also may require a suitably large groovy project.  Here is Groovy itself as free-form project 
nbproject/project.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
    <type>org.netbeans.modules.ant.freeform</type>
    <configuration>
        <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
            <name>Groovy</name>
        </general-data>
        <general-data xmlns="http://www.netbeans.org/ns/freeform-project/2">
            <!-- Do not use Project Properties customizer when editing this file manually. -->
            <name>Groovy</name>
            <properties/>
            <folders>
                <source-folder>
                    <label>Groovy</label>
                    <location>.</location>
                    <encoding>UTF-8</encoding>
                </source-folder>
                <source-folder>
                    <label>src\main</label>
                    <type>java</type>
                    <location>src/main</location>
                    <encoding>UTF-8</encoding>
                </source-folder>
                <source-folder>
                    <label>src\examples</label>
                    <type>java</type>
                    <location>src/examples</location>
                    <encoding>UTF-8</encoding>
                </source-folder>
                <source-folder>
                    <label>src\test</label>
                    <type>java</type>
                    <location>src/test</location>
                    <encoding>UTF-8</encoding>
                </source-folder>
            </folders>
            <ide-actions>
                <action name="build">
                    <target>dist</target>
                </action>
                <action name="clean">
                    <target>clean</target>
                </action>
                <action name="javadoc">
                    <target>javadoc</target>
                </action>
                <action name="test">
                    <target>test</target>
                </action>
                <action name="rebuild">
                    <target>clean</target>
                    <target>dist</target>
                </action>
                <action name="debug">
                    <script>nbproject/ide-file-targets.xml</script>
                    <target>debug-nb</target>
                </action>
            </ide-actions>
            <export>
                <type>folder</type>
                <location>target/classes</location>
                <build-target>dist</build-target>
            </export>
            <export>
                <type>jar</type>
                <location>target/dist/groovy-1.6-beta-1-SNAPSHOT.jar</location>
                <build-target>dist</build-target>
            </export>
            <export>
                <type>jar</type>
                <location>target/dist/groovy-all-1.6-beta-1-SNAPSHOT.jar</location>
                <build-target>dist</build-target>
            </export>
            <export>
                <type>jar</type>
                <location>target/dist/groovy-all-minimal-1.6-beta-1-SNAPSHOT.jar</location>
                <build-target>dist</build-target>
            </export>
            <view>
                <items>
                    <source-folder style="packages">
                        <label>src\main</label>
                        <location>src/main</location>
                    </source-folder>
                    <source-folder style="packages">
                        <label>src\examples</label>
                        <location>src/examples</location>
                    </source-folder>
                    <source-folder style="packages">
                        <label>src\test</label>
                        <location>src/test</location>
                    </source-folder>
                    <source-file>
                        <location>build.xml</location>
                    </source-file>
                </items>
                <context-menu>
                    <ide-action name="build"/>
                    <ide-action name="rebuild"/>
                    <ide-action name="clean"/>
                    <ide-action name="javadoc"/>
                    <ide-action name="test"/>
                    <ide-action name="debug"/>
                </context-menu>
            </view>
            <subprojects/>
        </general-data>
        <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/2">
            <compilation-unit>
                <package-root>src/main</package-root>
                <classpath
mode="compile">target/lib/compile/ant-1.7.0.jar:target/lib/compile/antlr-2.7.6.jar:target/lib/compile/asm-2.2.jar:target/lib/compile/asm-analysis-2.2.jar:target/lib/compile/asm-tree-2.2.jar:target/lib/compile/asm-util-2.2.jar:target/lib/compile/bsf-2.4.0.jar:target/lib/compile/commons-cli-1.0.jar:target/lib/compile/jline-0.9.94.jar:target/lib/compile/jsp-api-2.0.jar:target/lib/compile/junit-3.8.2.jar:target/lib/compile/mockobjects-core-0.09.jar:target/lib/compile/mx4j-3.0.2.jar:target/lib/compile/servlet-api-2.4.jar:target/lib/compile/xpp3_min-1.1.3.4.O.jar:target/lib/compile/xstream-1.2.2.jar:target/lib/runtime/ant-1.7.0.jar:target/lib/runtime/ant-junit-1.7.0.jar:target/lib/runtime/ant-launcher-1.7.0.jar:target/lib/runtime/antlr-2.7.7.jar:target/lib/runtime/asm-2.2.3.jar:target/lib/runtime/asm-analysis-2.2.3.jar:target/lib/runtime/asm-tree-2.2.3.jar:target/lib/runtime/asm-util-2.2.3.jar:target/lib/runtime/bsf-2.4.0.jar:target/lib/runtime/commons-cli-1.0.jar:target/lib/runtime/commons-logging-1.1.jar:target/lib/runtime/jline-0.9.94.jar:target/lib/runtime/jsp-api-2.0.jar:target/lib/runtime/junit-3.8.2.jar:target/lib/runtime/mockobjects-core-0.09.jar:target/lib/runtime/mx4j-3.0.2.jar:target/lib/runtime/servlet-api-2.4.jar:target/lib/runtime/xpp3_min-1.1.3.4.O.jar:target/lib/runtime/xstream-1.2.2.jar</classpath>
                <built-to>target/classes</built-to>
                <built-to>target/dist/groovy-1.6-beta-1-SNAPSHOT.jar</built-to>
                <built-to>target/dist/groovy-all-1.6-beta-1-SNAPSHOT.jar</built-to>
                <built-to>target/dist/groovy-all-minimal-1.6-beta-1-SNAPSHOT.jar</built-to>
                <source-level>1.5</source-level>
            </compilation-unit>
            <compilation-unit>
                <package-root>src/examples</package-root>
                <classpath
mode="compile">target/lib/runtime/ant-1.7.0.jar:target/lib/runtime/ant-junit-1.7.0.jar:target/lib/runtime/ant-launcher-1.7.0.jar:target/lib/runtime/antlr-2.7.7.jar:target/lib/runtime/asm-2.2.3.jar:target/lib/runtime/asm-analysis-2.2.3.jar:target/lib/runtime/asm-tree-2.2.3.jar:target/lib/runtime/asm-util-2.2.3.jar:target/lib/runtime/bsf-2.4.0.jar:target/lib/runtime/commons-cli-1.0.jar:target/lib/runtime/commons-logging-1.1.jar:target/lib/runtime/jline-0.9.94.jar:target/lib/runtime/jsp-api-2.0.jar:target/lib/runtime/junit-3.8.2.jar:target/lib/runtime/mockobjects-core-0.09.jar:target/lib/runtime/mx4j-3.0.2.jar:target/lib/runtime/servlet-api-2.4.jar:target/lib/runtime/xpp3_min-1.1.3.4.O.jar:target/lib/runtime/xstream-1.2.2.jar:src/main</classpath>
                <source-level>1.5</source-level>
            </compilation-unit>
            <compilation-unit>
                <package-root>src/test</package-root>
                <unit-tests/>
                <classpath
mode="compile">src/main:target/lib/test/ant-1.7.0.jar:target/lib/test/ant-junit-1.7.0.jar:target/lib/test/ant-launcher-1.7.0.jar:target/lib/test/antlr-2.7.7.jar:target/lib/test/asm-2.2.3.jar:target/lib/test/asm-analysis-2.2.3.jar:target/lib/test/asm-attrs-2.2.3.jar:target/lib/test/asm-tree-2.2.3.jar:target/lib/test/asm-util-2.2.3.jar:target/lib/test/bsf-2.4.0.jar:target/lib/test/cglib-nodep-2.1_3.jar:target/lib/test/commons-cli-1.0.jar:target/lib/test/commons-logging-1.1.jar:target/lib/test/hsqldb-1.8.0.7.jar:target/lib/test/jline-0.9.94.jar:target/lib/test/jmock-1.2.0.jar:target/lib/test/jmock-cglib-1.2.0.jar:target/lib/test/jsp-api-2.0.jar:target/lib/test/junit-3.8.2.jar:target/lib/test/mockobjects-core-0.09.jar:target/lib/test/mx4j-3.0.2.jar:target/lib/test/servlet-api-2.4.jar:target/lib/test/xmlunit-1.1.jar:target/lib/test/xpp3_min-1.1.3.4.O.jar:target/lib/test/xstream-1.2.2.jar</classpath>
                <source-level>1.5</source-level>
            </compilation-unit>
        </java-data>
    </configuration>
</project>
Comment 1 shemnon 2008-11-10 17:31:57 UTC
Another bad stack trace (the first one actually locked up the whole JVM, I had to kill it)

2008-11-10 10:18:14
Full thread dump Java HotSpot(TM) Server VM (11.0-b15 mixed mode):

"Inactive RequestProcessor thread [Was:CaretMarkProvider/org.netbeans.modules.ed
itor.errorstripe.caret.CaretMarkProvider$1]" daemon prio=2 tid=0x2cea6800 nid=0x
10e8 in Object.wait() [0x30ddf000..0x30ddfb68]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x13dbe970> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:950)
        - locked <0x13dbe970> (a java.lang.Object)

"Inactive RequestProcessor thread [Was:CaretAwareSourceTaskFactory worker/org.ne
tbeans.napi.gsfret.source.support.CaretAwareSourceTaskFactory$ComponentListener$
1]" daemon prio=2 tid=0x2ceaac00 nid=0x1050 in Object.wait() [0x2db3f000..0x2db3
fbe8]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x13e96838> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:950)
        - locked <0x13e96838> (a java.lang.Object)

"Inactive RequestProcessor thread [Was:TimedSoftReference/org.openide.util.Timed
SoftReference]" daemon prio=2 tid=0x2ceab000 nid=0xf50 in Object.wait() [0x2d93f
000..0x2d93fc68]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x13df5bb0> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:950)
        - locked <0x13df5bb0> (a java.lang.Object)

"Inactive RequestProcessor thread [Was:Refresh Editor Context/org.netbeans.spi.d
ebugger.ui.EditorContextDispatcher$EventFirer]" daemon prio=2 tid=0x2ceaa000 nid
=0xc40 in Object.wait() [0x2d73f000..0x2d73fce8]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x13eea8b8> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:950)
        - locked <0x13eea8b8> (a java.lang.Object)

"Java Source Worker Thread" daemon prio=2 tid=0x2cead400 nid=0xfb0 runnable [0x3
5bce000..0x35bcf9e8]
   java.lang.Thread.State: RUNNABLE
        at java.util.Date.<init>(Date.java:235)
        at java.util.zip.ZipEntry.dosToJavaTime(ZipEntry.java:290)
        at java.util.zip.ZipEntry.getTime(ZipEntry.java:129)
        at org.netbeans.modules.java.source.parsing.CachingArchive.createMap(Cac
hingArchive.java:236)
        at org.netbeans.modules.java.source.parsing.CachingArchive.doInit(Cachin
gArchive.java:152)
        - locked <0x29d4a848> (a org.netbeans.modules.java.source.parsing.Cachin
gArchive)
        at org.netbeans.modules.java.source.parsing.CachingArchive.getFiles(Cach
ingArchive.java:91)
        at org.netbeans.modules.java.source.parsing.CachingFileManager.list(Cach
ingFileManager.java:116)
        at org.netbeans.modules.java.source.parsing.ProxyFileManager.list(ProxyF
ileManager.java:174)
        at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:2157)
        at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1844)
        at com.sun.tools.javac.code.Symbol.complete(Symbol.java:401)
        at com.sun.tools.javac.comp.Enter.visitTopLevel(Enter.java:320)
        at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:
451)
        at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:281)
        at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:295)
        at com.sun.tools.javac.comp.Enter.complete(Enter.java:630)
        at com.sun.tools.javac.comp.Enter.main(Enter.java:615)
        at com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:85
3)
        at com.sun.tools.javac.api.JavacTaskImpl.enter(JavacTaskImpl.java:357)
        at com.sun.tools.javac.api.JavacTaskImpl.enterTrees(JavacTaskImpl.java:3
95)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWork
er.updateFile(RepositoryUpdater.java:2392)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWork
er.compileWithDeps(RepositoryUpdater.java:2643)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWork
er.access$3600(RepositoryUpdater.java:1256)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWork
er$1.run(RepositoryUpdater.java:1556)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWork
er$1.run(RepositoryUpdater.java:1299)
        at org.netbeans.modules.java.source.usages.ClassIndexManager.writeLock(C
lassIndexManager.java:99)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWork
er.run(RepositoryUpdater.java:1296)
        at org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWork
er.run(RepositoryUpdater.java:1256)
        at org.netbeans.api.java.source.JavaSource$CompilationJob.run(JavaSource
.java:1618)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:44
1)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
        at java.lang.Thread.run(Thread.java:619)

"GSF Source Worker Thread" daemon prio=2 tid=0x2cead000 nid=0x4a4 waiting on con
dition [0x359cf000..0x359cfa68]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x149ffe60> (a java.util.concurrent.CountDownLat
ch$Sync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInt
errupt(AbstractQueuedSynchronizer.java:747)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared
Interruptibly(AbstractQueuedSynchronizer.java:905)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedIn
terruptibly(AbstractQueuedSynchronizer.java:1217)
        at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
        at org.netbeans.api.java.source.JavaSource$ScanSync.get(JavaSource.java:
2485)
        at org.netbeans.api.java.source.JavaSource$ScanSync.get(JavaSource.java:
2444)
        at org.netbeans.modules.groovy.editor.parser.NbCompilationUnit$NbCompile
Unit.getClass(NbCompilationUnit.java:99)
        at org.codehaus.groovy.control.ResolveVisitor.resolveFromCompileUnit(Res
olveVisitor.java:427)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.jav
a:251)
        at org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.
java:969)
        at org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisi
tor.java:141)
        at org.codehaus.groovy.control.CompilationUnit$5.call(CompilationUnit.ja
va:527)
        at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(Compil
ationUnit.java:772)
        at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.j
ava:438)
        at org.netbeans.modules.groovy.editor.parser.GroovyParser.parseBuffer(Gr
oovyParser.java:444)
        at org.netbeans.modules.groovy.editor.parser.GroovyParser.parseFiles(Gro
ovyParser.java:120)
        at org.netbeans.napi.gsfret.source.Source.moveToPhase(Source.java:1056)
        at org.netbeans.napi.gsfret.source.Source$CompilationJob.run(Source.java
:1399)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:44
1)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
        at java.lang.Thread.run(Thread.java:619)

"org.netbeans.modules.gsfret.source.usages.RepositoryUpdater" daemon prio=2 tid=
0x2ceac800 nid=0x1608 in Object.wait() [0x357cf000..0x357cfae8]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x132fa788> (a java.util.TaskQueue)
        at java.lang.Object.wait(Object.java:485)
        at java.util.TimerThread.mainLoop(Timer.java:483)
        - locked <0x132fa788> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:462)

"Default RequestProcessor" daemon prio=2 tid=0x2ceaa400 nid=0x16a4 in Object.wai
t() [0x33a7f000..0x33a7f9e8]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x1338f200> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at org.netbeans.modules.tasklist.impl.FileScanningWorker.run(FileScannin
gWorker.java:205)
        - locked <0x1338f200> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)

        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:997)

"DestroyJavaVM" prio=6 tid=0x2cea9400 nid=0x630 waiting on condition [0x00000000
..0x025afd20]
   java.lang.Thread.State: RUNNABLE

"AWT-EventQueue-1" prio=6 tid=0x2cea8800 nid=0x8f8 waiting on condition [0x30fdf
000..0x30fdfb68]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x1345abf0> (a java.util.concurrent.locks.Reentr
antLock$FairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInt
errupt(AbstractQueuedSynchronizer.java:747)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(A
bstractQueuedSynchronizer.java:778)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(Abstrac
tQueuedSynchronizer.java:1114)
        at java.util.concurrent.locks.ReentrantLock$FairSync.lock(ReentrantLock.
java:201)
        at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262)

        at org.netbeans.napi.gsfret.source.Source.runUserActionTask(Source.java:
450)
        at org.netbeans.modules.gsfret.editor.codetemplates.GsfCodeTemplateFilte
r.<init>(GsfCodeTemplateFilter.java:84)
        at org.netbeans.modules.gsfret.editor.codetemplates.GsfCodeTemplateFilte
r.<init>(GsfCodeTemplateFilter.java:68)
        at org.netbeans.modules.gsfret.editor.codetemplates.GsfCodeTemplateFilte
r$Factory.createFilter(GsfCodeTemplateFilter.java:120)
        at org.netbeans.lib.editor.codetemplates.CodeTemplateManagerOperation.ge
tTemplateFilters(CodeTemplateManagerOperation.java:226)
        at org.netbeans.lib.editor.codetemplates.SurroundWithFix.getFixes(Surrou
ndWithFix.java:71)
        at org.netbeans.lib.editor.codetemplates.AbbrevDetection.showSurroundWit
hHint(AbbrevDetection.java:424)
        at org.netbeans.lib.editor.codetemplates.AbbrevDetection.access$100(Abbr
evDetection.java:93)
        at org.netbeans.lib.editor.codetemplates.AbbrevDetection$1.actionPerform
ed(AbbrevDetection.java:186)
        at javax.swing.Timer.fireActionPerformed(Timer.java:271)
        at javax.swing.Timer$DoPostEvent.run(Timer.java:201)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.j
ava:104)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

"TimerQueue" daemon prio=6 tid=0x2cea8400 nid=0x1290 in Object.wait() [0x2edcf00
0..0x2edcfbe8]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x126d3fa0> (a javax.swing.TimerQueue)
        at javax.swing.TimerQueue.run(TimerQueue.java:236)
        - locked <0x126d3fa0> (a javax.swing.TimerQueue)
        at java.lang.Thread.run(Thread.java:619)

"*** JFluid Separate Command Execution Thread" daemon prio=6 tid=0x2cea7c00 nid=
0xe40 in Object.wait() [0x3465f000..0x3465fc68]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12773f18> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at org.netbeans.lib.profiler.ProfilerClient$SeparateCmdExecutionThread.r
un(ProfilerClient.java:101)
        - locked <0x12773f18> (a java.lang.Object)

"Thread-4" daemon prio=6 tid=0x2cea7800 nid=0x1154 in Object.wait() [0x3445f000.
.0x3445fce8]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12576a80> (a java.util.LinkedList)
        at java.lang.Object.wait(Object.java:485)
        at java.util.prefs.AbstractPreferences$EventDispatchThread.run(AbstractP
references.java:1461)
        - locked <0x12576a80> (a java.util.LinkedList)

"AWT-Windows" daemon prio=6 tid=0x2cf95c00 nid=0x12a4 runnable [0x2ebcf000..0x2e
bcfb68]
   java.lang.Thread.State: RUNNABLE
        at sun.awt.windows.WToolkit.eventLoop(Native Method)
        at sun.awt.windows.WToolkit.run(WToolkit.java:291)
        at java.lang.Thread.run(Thread.java:619)

"AWT-Shutdown" prio=6 tid=0x2cf95800 nid=0x152c in Object.wait() [0x2e9cf000..0x
2e9cfbe8]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12081d50> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:485)
        at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
        - locked <0x12081d50> (a java.lang.Object)
        at java.lang.Thread.run(Thread.java:619)

"Java2D Disposer" daemon prio=10 tid=0x2cf99400 nid=0x384 in Object.wait() [0x2e
7cf000..0x2e7cfc68]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12082650> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x12082650> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at sun.java2d.Disposer.run(Disposer.java:125)
        at java.lang.Thread.run(Thread.java:619)

"Active Reference Queue Daemon" daemon prio=2 tid=0x2cf4c800 nid=0x17d4 in Objec
t.wait() [0x2e48f000..0x2e48fce8]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x120656b0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x120656b0> (a java.lang.ref.ReferenceQueue$Lock)
        at org.openide.util.Utilities$ActiveQueue.run(Utilities.java:3088)
        at java.lang.Thread.run(Thread.java:619)

"Inactive RequestProcessor thread [Was:Document Processing/org.openide.text.Clon
eableEditor$DoInitialize]" daemon prio=4 tid=0x2cd94400 nid=0x1120 in Object.wai
t() [0x2d53f000..0x2d53f9e8]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12082a50> (a java.lang.Object)
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:950)
        - locked <0x12082a50> (a java.lang.Object)

"Timer-0" daemon prio=6 tid=0x2cf1b800 nid=0x1320 in Object.wait() [0x2e08f000..
0x2e08fa68]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12078e18> (a java.util.TaskQueue)
        at java.util.TimerThread.mainLoop(Timer.java:509)
        - locked <0x12078e18> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:462)

"CLI Requests Server" daemon prio=6 tid=0x2cd98000 nid=0xd90 runnable [0x2de8f00
0..0x2de8fae8]
   java.lang.Thread.State: RUNNABLE
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
        - locked <0x12062e40> (a java.net.SocksSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:453)
        at java.net.ServerSocket.accept(ServerSocket.java:421)
        at org.netbeans.CLIHandler$Server.run(CLIHandler.java:1010)

"RMI TCP Accept-0" daemon prio=6 tid=0x2c446000 nid=0xd38 runnable [0x2d33f000..
0x2d33fc68]
   java.lang.Thread.State: RUNNABLE
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
        - locked <0x12078198> (a java.net.SocksSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:453)
        at java.net.ServerSocket.accept(ServerSocket.java:421)
        at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRM
IServerSocketFactory.java:34)
        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTr
ansport.java:369)
        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:3
41)
        at java.lang.Thread.run(Thread.java:619)

"Low Memory Detector" daemon prio=6 tid=0x00d17c00 nid=0x178c runnable [0x000000
00..0x00000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread1" daemon prio=10 tid=0x00d15000 nid=0x5c0 waiting on condition [
0x00000000..0x2c0ef450]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=10 tid=0x00d11400 nid=0x175c waiting on condition
[0x00000000..0x2c09f0d0]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" daemon prio=10 tid=0x00d10c00 nid=0xaf8 runnable [0x00000000..
0x00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x00d10800 nid=0x11f4 waiting on conditio
n [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=0x00d00000 nid=0x13e4 in Object.wait() [0x2bc4f000
..0x2bc4fb68]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11dce400> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x11dce400> (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=0x00cfa400 nid=0x3ec in Object.wait() [0x
2ba4f000..0x2ba4fbe8]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11dce420> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:485)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        - locked <0x11dce420> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x00cf6c00 nid=0x17d8 runnable

"GC task thread#0 (ParallelGC)" prio=6 tid=0x00c44c00 nid=0xf78 runnable

"GC task thread#1 (ParallelGC)" prio=6 tid=0x00c46000 nid=0x16e0 runnable

"VM Periodic Task Thread" prio=10 tid=0x2c4efc00 nid=0x1060 waiting on condition


JNI global references: 2151

Heap
 PSYoungGen      total 41984K, used 27689K [0x28a30000, 0x2b780000, 0x2b7b0000)
  eden space 37824K, 69% used [0x28a30000,0x2a3ae4a8,0x2af20000)
  from space 4160K, 38% used [0x2b370000,0x2b4fc000,0x2b780000)
  to   space 4288K, 0% used [0x2af20000,0x2af20000,0x2b350000)
 PSOldGen        total 51904K, used 48325K [0x11db0000, 0x15060000, 0x28a30000)
  object space 51904K, 93% used [0x11db0000,0x14ce14b8,0x15060000)
 PSPermGen       total 76544K, used 44667K [0x055b0000, 0x0a070000, 0x11db0000)
  object space 76544K, 58% used [0x055b0000,0x0814ec30,0x0a070000)

Comment 2 Petr Hejl 2008-11-12 15:29:30 UTC
Hi shemnon,
can you provide details about your project configuration? For example number of files, libraries, location etc. I
suppose OS is Windows...
Comment 3 shemnon 2008-11-12 18:37:28 UTC
305 Groovy files, 1788 java files.

Here's the source repository: C:\svn\codehaus.org\groovy\trunk\groovy\groovy-core\src\main just drop the project.xml in
the first comment into an nbproject dir and you have what I have.

The big offensive issue in my opinion is that you do a synchronized lock of a resource in the EDT!  If someone else is
going to hold on to it for 10 seconds the EDT is screwed beyond belief!  Whatever is causing an off-thread 10s delay
needs to be optimized down to .1s, OR (better) the EDT should never block and have some sort of an inbetween state when
the data isn't available.  Especially since this is triggered off a timer you can just reset the timer for another 500ms.
Comment 4 Petr Hejl 2008-11-12 21:05:49 UTC
You are absolutely right about that. No doubt. I just need to figure out whether this is infrastructure or groovy
specific problem.

Thanks!
Comment 5 Petr Hejl 2008-11-13 15:09:57 UTC
Reproduced. Seems like the delay is caused by parsing the changed file.
Comment 6 Petr Hejl 2008-11-18 12:39:30 UTC
The main delay is caused by two competing threads - Java Source Worker and GSF Worker. Usually Java one wins
(VirtualSourceProvider) and performs parsing and java stub generation. During this action GSF Worker waits for java scan
to finish. As a result the GSF Worker parsing is two times slower.

The Parsing API could help (only one parsing thread) - Groovy parser results could be used for both virtual source and GSF.
Comment 7 ender01 2008-11-18 15:50:43 UTC
Just wanted to add I'm seeing this with only 1 or 2 groovy files and not nearly as many java files, so project size 
doesn't seem to matter. I think the main difference is that I'm using Maven projects instead of the Netbeans generated 
projects.

My environment is as follow:
Ubuntu 8.10 x86_64

java version "1.6.0_10"
Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
Java HotSpot(TM) 64-Bit Server VM (build 11.0-b15, mixed mode)

NetBeans IDE Dev (Build 200810140201)

I can produce a stacktrace if needed. But like the reported this makes groovy support useless as I have to wait several 
seconds everytime I make a change.

Comment 8 Petr Hejl 2008-11-18 15:56:32 UTC
Thread dump would be definitely useful - at least we can reassure that it is the same issue.
Thanks.
Comment 9 trcorbin 2008-12-03 23:35:05 UTC
I don't know if the particular circumstances are exactly the same - if the freeze is always just after an edit.

All I know is that netbeans often freezes when I select some text and it makes it almost unusable.

Suse 10.3 64 bit/netbeans 6.5/java 6u10 64 bit 

java version "1.6.0_10"
Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
Java HotSpot(TM) Server VM (build 11.0-b15, mixed mode)

using Nimbus.

126 groovy files and 135 java files.

If this isn't fixed soon, I may not have much hair left, I'm always pulling it out when this happens.
It really disrupts my "flow", which is awful.
Comment 10 schapey 2008-12-03 23:39:08 UTC
Just wanted to add that I am also seeing this bug.  If I am editing a groovy file...I basically try to remember not to 
select anything.  This problem is is making it very difficult to edit groovy files efficiently.

I am seeing a much longer pause than 5-10 seconds maybe because the project I am working on is larger.
Comment 11 Petr Hejl 2008-12-04 13:07:28 UTC
The GSF infrastructure avoids parsing if the scan is running. However it enters the parsing when java scan is running.
This delays the EDT. The code I'm referring to is in constructor of GsfCodeTemplateFilter.

This should be resolved by the new parsing API. The rewrite to parsing API should start now, targeting 7.0M2.
Comment 12 pstehlik 2008-12-19 20:49:30 UTC
I have the same issue here and wanted to add, that I hoped it would help to increase the memory settings as a
workaround, but it doesn't seem to do anything.

In case you should have any pre-releases for that particular part, I would be happy to test.
Comment 13 Petr Hejl 2009-01-09 11:37:41 UTC
*** Issue 156525 has been marked as a duplicate of this issue. ***
Comment 14 Petr Hejl 2009-01-09 11:38:48 UTC
*** Issue 156525 has been marked as a duplicate of this issue. ***
Comment 15 Petr Hejl 2009-01-12 20:37:31 UTC
*** Issue 142329 has been marked as a duplicate of this issue. ***
Comment 16 Petr Hejl 2009-02-09 09:43:28 UTC
*** Issue 157092 has been marked as a duplicate of this issue. ***
Comment 17 wstrange 2009-02-10 20:04:45 UTC
Also seeing the bug - OS X, JDK 1.6. 

This makes the groovy editor almost unusable. 
Comment 18 Petr Hejl 2009-02-13 14:38:48 UTC
As parsing API won't make it to M2 I've prepared a workaround - main 3271971588da.

It would be great if you could test the build with this change - integration message should appear in comments soon,
describing which build to download.
Comment 19 Petr Hejl 2009-02-16 11:25:53 UTC
Lowering to P3 (as a reminder for future integration). This has been workarounded on trunk and properly fixed in parsing
api clone. Please verify once the daily build is available.
Comment 20 Quality Engineering 2009-02-18 10:48:53 UTC
Integrated into 'main-golden', will be available in build *200902180201* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main/rev/3271971588da
User: phejl@netbeans.org
Log: #152894 Edit/Highlight loop causes 5s-10s EDT pauses
Comment 21 Petr Hejl 2009-02-18 16:50:44 UTC
Anybody interested can verify with http://bits.netbeans.org/dev/nightly/2009-02-18_02-01-11/.

Thanks,
P.
Comment 22 pstehlik 2009-02-18 17:29:15 UTC
2009-02-18_02-01-11 seems to do the trick.
thx a lot!
Comment 23 shemnon 2009-02-18 17:51:31 UTC
Which package on the nightly page?  Java SE, Java, Ruby, C/C++, PHP, or All?  I am assuming all, but is there a smaller
package I could try?
Comment 24 Petr Hejl 2009-02-18 18:39:25 UTC
Package Java. I'll fight more to have a Groovy row on that page ;)
Comment 25 Petr Hejl 2009-02-22 17:27:35 UTC
*** Issue 158950 has been marked as a duplicate of this issue. ***
Comment 26 hippy 2009-02-23 19:11:57 UTC
FYI

I spent a day doing development with yesterday's (2/22/09) development build and most of this issue is cleared up;
however, I am still seeing the occasional freeze.  It happens very rarely now, meaning that I could certainly use the
platform for development, but the problem still exists somewhere deep down.

It now seems to happen after I paste text into a file, although that just happened to be when I noticed it.  Over about
eight hours I only noticed a freeze about a half dozen times.  At least it's just a minor annoyance now.
Comment 27 Petr Hejl 2009-02-24 13:29:49 UTC
Hi hippy,
do you think it would be possible to generate thread dump when it happens again
(http://wiki.netbeans.org/GenerateThreadDump)?

Thanks,
P.
Comment 28 hippy 2009-02-24 14:12:30 UTC
Created attachment 77294 [details]
thread dump during IDE freeze (2/22 daily build)
Comment 29 hippy 2009-02-24 14:17:38 UTC
I just posted the thread dump of my IDE during the freeze I described above.  To replicate:

1) Open Groovy file
2) Select and copy some text
3) Keep pasting it into editor until it freezes

It took me about ten seconds or so to see the lock up.
Comment 30 hippy 2009-02-24 14:26:56 UTC
By the way, after posting the thread dump and my last comment, I went back to shut the IDE down so I could get back to
my morning coffee and the all too depressing news, and the IDE was *still* frozen.  It looks like I will have to kill
the VM.

Note: ctrl-c in the console had to be done twice.  The first time the console just started scrolling along will some
message being repeated about 1.3 and parsing?  Sorry I didn't capture it.
Comment 31 Petr Hejl 2009-04-16 14:11:18 UTC
With rewrite to parsing API/CSL the bug is not relevant anymore. Please feel free to report any recent hiccups to issue
160727.


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo