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 101365 - Deadlock between task list and Go to class
Summary: Deadlock between task list and Go to class
Status: VERIFIED FIXED
Alias: None
Product: editor
Classification: Unclassified
Component: Hints & Annotations (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: Jan Lahoda
URL:
Keywords: THREAD
Depends on:
Blocks:
 
Reported: 2007-04-17 14:20 UTC by pzajac
Modified: 2007-05-02 14:09 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
deadlock (22.53 KB, text/plain)
2007-04-17 14:22 UTC, pzajac
Details

Note You need to log in before you can comment on or make changes to this bug.
Description pzajac 2007-04-17 14:20:23 UTC
[200704161900]

"AWT-EventQueue-1" prio=1 tid=0x08540b38 nid=0x2c8f waiting on condition
[0xb0dab000..0xb0dac030]
                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.runUserActionTask(JavaSource.java:424)
                at
org.netbeans.modules.editor.java.GoToSupport.performGoTo(GoToSupport.java:100)
                at
org.netbeans.modules.editor.java.GoToSupport.goTo(GoToSupport.java:235)
                at
org.netbeans.modules.editor.java.JavaKit$JavaGoToDeclarationAction.gotoDeclaration(JavaKit.java:571)
                at
org.netbeans.editor.ext.ExtKit$GotoDeclarationAction.actionPerformed(ExtKit.java:527)
                at
org.netbeans.editor.BaseAction.actionPerformed(BaseAction.java:263)


"Java Source Worker Thread" daemon prio=1 tid=0xb153e898 nid=0x2c89 in
Object.wait() [0xac039000..0xac039f30]
                at java.lang.Object.wait(Native Method)
                - waiting on <0x7ec4d958> (a java.awt.EventQueue$1AWTInvocationLock)
                at java.lang.Object.wait(Object.java:474)
                at java.awt.EventQueue.invokeAndWait(EventQueue.java:848)
                - locked <0x7ec4d958> (a java.awt.EventQueue$1AWTInvocationLock)
                at
javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1257)
                at
org.netbeans.modules.tasklist.impl.CurrentEditorScanningScope.getFileFromTopComponent(CurrentEditorScanningScope.java:172)
                at
org.netbeans.modules.tasklist.impl.CurrentEditorScanningScope.getCurrentFile(CurrentEditorScanningScope.java:133)
                at
org.netbeans.modules.tasklist.impl.CurrentEditorScanningScope.isInScope(CurrentEditorScanningScope.java:78)
                at
org.netbeans.modules.java.source.tasklist.JavaTaskProvider.refreshImpl(JavaTaskProvider.java:71)
                - locked <0x80f2afa0> (a
org.netbeans.modules.java.source.tasklist.JavaTaskProvider)
                at
org.netbeans.modules.java.source.tasklist.JavaTaskProvider.refresh(JavaTaskProvider.java:80)
                at
org.netbeans.modules.java.source.usages.RepositoryUpdater.batchCompile(RepositoryUpdater.java:2136)
                at
org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker.parseFiles(RepositoryUpdater.java:1280)
                at
org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker.updateFolder(RepositoryUpdater.java:1342)
                at
org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker.access$500(RepositoryUpdater.java:812)
                at
org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker$1.run(RepositoryUpdater.java:857)
                at
org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker$1.run(RepositoryUpdater.java:840)
                at
org.netbeans.modules.java.source.usages.ClassIndexManager.writeLock(ClassIndexManager.java:78)
                at
org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker.run(RepositoryUpdater.java:837)
                at
org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker.run(RepositoryUpdater.java:812)
Comment 1 pzajac 2007-04-17 14:22:52 UTC
Created attachment 41088 [details]
deadlock
Comment 2 Jan Lahoda 2007-04-17 14:33:59 UTC
Standa, is it really necessary to call SU.invokeAndWait inside
TaskScanningScope.isInScope?
Comment 3 Stanislav Aubrecht 2007-04-17 15:16:34 UTC
unfortunately, window systems api mandates to be called from awt only. i already
tried some hacking around but without much success. i'll try to come up with
something better...
Comment 4 Jan Lahoda 2007-04-17 16:13:38 UTC
Well, I meant something like caching of the current file somewhere and updating
the cache from AWT.
Comment 5 Jan Lahoda 2007-04-19 12:40:23 UTC
Standa was doing some changes in threading, which probably fixed this problem.
Please reopen if it happens again with the new thread dump. Thanks.
Comment 6 pzajac 2007-05-02 14:09:44 UTC
cannot reproduce