Bug 32068 - deadlock attempting to override/implement method
Summary: deadlock attempting to override/implement method
Status: RESOLVED DUPLICATE of bug 31891
Alias: None
Product: JDT
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 2.1   Edit
Hardware: PC Windows 2000
: P3 critical (vote)
Target Milestone: ---   Edit
Assignee: JDT-UI-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-02-17 16:52 EST by Jed Anderson CLA
Modified: 2003-02-18 03:42 EST (History)
0 users

See Also:


Attachments
config.txt (47.21 KB, text/plain)
2003-02-17 17:04 EST, Jed Anderson CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jed Anderson CLA 2003-02-17 16:52:35 EST
 
Comment 1 Jed Anderson CLA 2003-02-17 16:56:02 EST
I had added an interface to a class, so I right clicked on the class in the
outliner and selected "Override/Implement methods...".  The new interface method
was checked, so I clicked OK.  Eclipse locked up.  Here's what I got from Ctrl-Break

Full thread dump:

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0xa2bae20
nid=0x638 waiting on monitor [0xb26f000..0xb26fdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:415)
        at org.eclipse.core.internal.utils.Semaphore.acquire(Semaphore.java:24)
        at org.eclipse.core.resources.WorkspaceLock.acquire(WorkspaceLock.java:49)
        at org.eclipse.ui.internal.UIWorkspaceLock.acquire(UIWorkspaceLock.java:40)
        at
org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:80)
        at
org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1551)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1586)
        at
org.eclipse.jdt.internal.core.JavaElement.runOperation(JavaElement.java:556)
        at org.eclipse.jdt.internal.core.WorkingCopy.reconcile(WorkingCopy.java:415)
        at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:72)
        at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:99)
        at
org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:76)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:189)

"Snapshot" prio=5 tid=0xa378b30 nid=0x4dc waiting on monitor [0xb22f000..0xb22fdbc]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.core.internal.resources.DelayedSnapshotRunnable.run(DelayedSnapshotRunnable.java:38)
        at java.lang.Thread.run(Thread.java:479)

"org.eclipse.pde.internal.ui.editor.manifest.NotifyingReconciler" daemon prio=2
tid=0x8fd7628 nid=0x5e0 waiting on monitor [0xb07f000..0xb07fdbc]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0xa275f10
nid=0x528 waiting on monitor [0xaf9f000..0xaf9fdbc]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0xa266170
nid=0x518 waiting on monitor [0xaf4f000..0xaf4fdbc]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0xa28b008
nid=0x41c waiting on monitor [0xaecf000..0xaecfdbc]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x8f23ca8
nid=0x5cc waiting on monitor [0xae8f000..0xae8fdbc]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x903b940
nid=0x298 waiting on monitor [0xae3f000..0xae3fdbc]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x8fa7830
nid=0x600 waiting on monitor [0xa22f000..0xa22fdbc]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161)

"Decoration" prio=2 tid=0x8f95c10 nid=0x264 waiting on monitor
[0x9c0f000..0x9c0fdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:415)
        at
org.eclipse.ui.internal.decorators.DecorationScheduler.next(DecorationScheduler.java:244)
        at
org.eclipse.ui.internal.decorators.DecorationScheduler$3.run(DecorationScheduler.java:270)
        at java.lang.Thread.run(Thread.java:479)

"Java indexing" daemon prio=4 tid=0x8b1cab8 nid=0x25c waiting on monitor
[0x98ff000..0x98ffdbc]
        at java.lang.Thread.sleep(Native Method)
        at
org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:334)
        at java.lang.Thread.run(Thread.java:479)

"Signal Dispatcher" daemon prio=10 tid=0x801ec0 nid=0x660 waiting on monitor [0..0]

"Finalizer" daemon prio=9 tid=0x7fdf18 nid=0x644 waiting on monitor
[0x8c4f000..0x8c4fdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:103)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:157)

"Reference Handler" daemon prio=10 tid=0x7fca68 nid=0x648 waiting on monitor
[0x8c0f000..0x8c0fdbc]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:415)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:105)

"main" prio=5 tid=0x234a80 nid=0x668 waiting for monitor entry [0x6f000..0x6fc34]
        at
org.eclipse.jdt.internal.corext.codemanipulation.ImportsStructure.getReplaceRange(ImportsStructure.java:559)
        at
org.eclipse.jdt.internal.corext.codemanipulation.ImportsStructure.create(ImportsStructure.java:519)
        at
org.eclipse.jdt.internal.corext.codemanipulation.AddUnimplementedMethodsOperation.run(AddUnimplementedMethodsOperation.java:79)
        at
org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:34)
        at
org.eclipse.jdt.internal.core.JavaModelOperation.execute(JavaModelOperation.java:356)
        at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:684)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1588)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:2634)
        at
org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:32)
        at
org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext$BusyRunnable.internalRun(BusyIndicatorRunnableContext.java:107)
        at
org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext$BusyRunnable.run(BusyIndicatorRunnableContext.java:74)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:65)
        at
org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext.run(BusyIndicatorRunnableContext.java:120)
        at
org.eclipse.jdt.ui.actions.OverrideMethodsAction.run(OverrideMethodsAction.java:175)
        at
org.eclipse.jdt.ui.actions.OverrideMethodsAction.run(OverrideMethodsAction.java:132)
        at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:191)
        at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:169)
        at org.eclipse.jface.action.Action.runWithEvent(Action.java:804)
        at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:450)
        at
org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent(ActionContributionItem.java:398)
        at
org.eclipse.jface.action.ActionContributionItem.access$0(ActionContributionItem.java:392)
        at
org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent(ActionContributionItem.java:72)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:77)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:836)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1692)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1410)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1288)
        at org.eclipse.ui.internal.Workbench.run(Workbench.java:1271)
        at
org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:845)
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:247)
        at org.eclipse.core.launcher.Main.run(Main.java:703)
        at org.eclipse.core.launcher.Main.main(Main.java:539)

"VM Thread" prio=5 tid=0x89900b0 nid=0x650 runnable

"VM Periodic Task Thread" prio=10 tid=0x800b68 nid=0x1ac waiting on monitor
"Suspend Checker Thread" prio=10 tid=0x801500 nid=0x654 runnable
Comment 2 Jed Anderson CLA 2003-02-17 17:00:00 EST
NOTE:  I can reproduce this.  My test case is as follows:

Import the org.eclipse.pde.junit plugin (from the jdt ui page) as source.  Since
the plugin is packaged with source in a jar (instead of a zip), pde gets
confused and you have to import the source yourself.  Create a source folder in
the org.eclipse.pde.junit project.  Import the source files from the jar into
this folder.  Open JUnitPdePlugin and add IStartup as an interface.  Save and
then right click on the JUnitPdePlugin in the class.  Select "Override/Implement
methods...", click the OK button.  Eclipse locks.
Comment 3 Jed Anderson CLA 2003-02-17 17:04:20 EST
Created attachment 3532 [details]
config.txt

Attached config info.

Summary:

VM: Sun JDK1.3.1
Build id: 200302141436
Comment 4 Dirk Baeumer CLA 2003-02-18 03:42:24 EST

*** This bug has been marked as a duplicate of 31891 ***