Project: JDT
Bug 108761 Deadlock while selecting method in Outline View
Reported: 2005-09-04 12:22:31 | Status: verified fixed

Using build I20050830-0800. I was browsing my code in an editor and then while trying to select a method in Outline View, I got following dead-lock showing by VM threads dump: Full thread dump Java HotSpot(TM) Client VM (1.4.2_04-b05 mixed mode): "Worker-32" prio=5 tid=0x0435c370 nid=0x1764 in Object.wait() [4f4f000..4f4fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173) - locked <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69) "Worker-31" prio=5 tid=0x041ceb58 nid=0x674 in Object.wait() [4f0f000..4f0fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173) - locked <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x041ea008 nid=0x1568 in Object.wait() [4d9f000..4d9fd8c] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176) - locked <0x150e4bb8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Worker-30" prio=5 tid=0x033fd8c8 nid=0x1394 in Object.wait() [4bdf000..4bdfd8c] at java.lang.Object.wait(Native Method) - waiting on <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173) - locked <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69) "Worker-29" prio=5 tid=0x04141e48 nid=0x61c in Object.wait() [4b9f000..4b9fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173) - locked <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69) "Worker-28" prio=5 tid=0x04166160 nid=0x1324 in Object.wait() [47ef000..47efd8c] at java.lang.Object.wait(Native Method) - waiting on <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173) - locked <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69) "Worker-27" prio=5 tid=0x03f22458 nid=0x1344 in Object.wait() [3dcf000..3dcfd8c] at java.lang.Object.wait(Native Method) - waiting on <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173) - locked <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69) "Worker-25" prio=5 tid=0x03fb6ae8 nid=0x1004 in Object.wait() [482f000..482fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173) - locked <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x03fb5630 nid=0x1474 in Object.wait() [49af000..49afd8c] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176) - locked <0x13952f48> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Worker-23" prio=5 tid=0x03fb5408 nid=0x117c in Object.wait() [496f000..496fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173) - locked <0x115003c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x03406620 nid=0xca0 in Object.wait() [4a5f000..4a5fd8c] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176) - locked <0x13093f20> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Worker-7" prio=5 tid=0x03f9dca8 nid=0x15b8 waiting for monitor entry [48ef000..48efd8c] at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.addTypeHierarchyToCache(SuperTypeHierarchyCache.java:124) - waiting to lock <0x120192b8> (a java.util.ArrayList) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.getTypeHierarchy(SuperTypeHierarchyCache.java:115) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.getTypeHierarchy(SuperTypeHierarchyCache.java:81) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.getMethodOverrideTester(SuperTypeHierarchyCache.java:88) - locked <0x12019258> (a org.eclipse.jdt.internal.corext.util.LRUMap) at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.getOverrideIndicators(OverrideIndicatorLabelDecorator.java:162) at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.computeAdornmentFlags(OverrideIndicatorLabelDecorator.java:129) at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.decorate(OverrideIndicatorLabelDecorator.java:246) at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:219) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:66) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044) at org.eclipse.core.runtime.Platform.run(Platform.java:783) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:313) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:299) at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:292) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x03276410 nid=0x9b8 in Object.wait() [474f000..474fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x11f1b698> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176) - locked <0x11f1b698> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x02dc7c88 nid=0xfb0 waiting for monitor entry [3eaf000..3eafd8c] at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.removeMethodOverrideTester(SuperTypeHierarchyCache.java:97) - waiting to lock <0x12019258> (a org.eclipse.jdt.internal.corext.util.LRUMap) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.removeHierarchyEntryFromCache(SuperTypeHierarchyCache.java:183) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.access$1(SuperTypeHierarchyCache.java:182) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache$HierarchyCacheEntry.typeHierarchyChanged(SuperTypeHierarchyCache.java:39) - locked <0x120192b8> (a java.util.ArrayList) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy$1.run(TypeHierarchy.java:386) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044) at org.eclipse.core.runtime.Platform.run(Platform.java:783) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.fireChange(TypeHierarchy.java:381) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.elementChanged(TypeHierarchy.java:350) at org.eclipse.jdt.internal.core.DeltaProcessor$3.run(DeltaProcessor.java:1432) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044) at org.eclipse.core.runtime.Platform.run(Platform.java:783) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1422) at org.eclipse.jdt.internal.core.DeltaProcessor.firePostChangeDelta(DeltaProcessor.java:1270) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1245) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:758) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:777) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1081) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:98) - locked <0x11c775e8> (a org.eclipse.jdt.internal.core.CompilationUnit) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044) at org.eclipse.core.runtime.Platform.run(Platform.java:783) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:82) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:174) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:120) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:103) at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:328) - locked <0x11c77ab0> (a java.lang.Object) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:170) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x02dac410 nid=0x1274 waiting for monitor entry [3e6f000..3e6fd8c] at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache$HierarchyCacheEntry.typeHierarchyChanged(SuperTypeHierarchyCache.java:39) - waiting to lock <0x120192b8> (a java.util.ArrayList) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy$1.run(TypeHierarchy.java:386) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044) at org.eclipse.core.runtime.Platform.run(Platform.java:783) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.fireChange(TypeHierarchy.java:381) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.elementChanged(TypeHierarchy.java:350) at org.eclipse.jdt.internal.core.DeltaProcessor$3.run(DeltaProcessor.java:1432) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044) at org.eclipse.core.runtime.Platform.run(Platform.java:783) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1422) at org.eclipse.jdt.internal.core.DeltaProcessor.firePostChangeDelta(DeltaProcessor.java:1270) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1245) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:758) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:777) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1081) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:98) - locked <0x11aaf4b0> (a org.eclipse.jdt.internal.core.CompilationUnit) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044) at org.eclipse.core.runtime.Platform.run(Platform.java:783) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:82) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:174) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:120) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:103) at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:328) - locked <0x11a88418> (a java.lang.Object) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:170) "Java indexing" daemon prio=4 tid=0x02e5d668 nid=0x157c in Object.wait() [3d6f000..3d6fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x116ed040> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:349) - locked <0x116ed040> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:534) "Start Level Event Dispatcher" daemon prio=5 tid=0x00a4b520 nid=0x17a0 in Object.wait() [302f000..302fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x113faa70> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349) - locked <0x113faa70> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:287) "Framework Event Dispatcher" daemon prio=5 tid=0x02ec7cf8 nid=0x165c in Object.wait() [2fef000..2fefd8c] at java.lang.Object.wait(Native Method) - waiting on <0x113faac0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349) - locked <0x113faac0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:287) "State Data Manager" daemon prio=5 tid=0x02e7a008 nid=0x25c waiting on condition [2faf000..2fafd8c] at java.lang.Thread.sleep(Native Method) at org.eclipse.osgi.framework.adaptor.core.StateManager.run(StateManager.java:289) at java.lang.Thread.run(Thread.java:534) "Signal Dispatcher" daemon prio=10 tid=0x0003de00 nid=0x14d8 waiting on condition [0..0] "Finalizer" daemon prio=9 tid=0x009c0ee0 nid=0x13c4 in Object.wait() [2c5f000..2c5fd8c] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x113c02e8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0x009bfab0 nid=0x11c4 in Object.wait() [2c1f000..2c1fd8c] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115) - locked <0x113c00a8> (a java.lang.ref.Reference$Lock) "main" prio=7 tid=0x00035958 nid=0x1530 waiting for monitor entry [7e000..7fc40] at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.findTypeHierarchyInCache(SuperTypeHierarchyCache.java:166) - waiting to lock <0x120192b8> (a java.util.ArrayList) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.hasInCache(SuperTypeHierarchyCache.java:160) at org.eclipse.jdt.ui.actions.OpenSuperImplementationAction.checkMethod(OpenSuperImplementationAction.java:175) at org.eclipse.jdt.ui.actions.OpenSuperImplementationAction.selectionChanged(OpenSuperImplementationAction.java:94) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchSelectionChanged(SelectionDispatchAction.java:210) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.selectionChanged(SelectionDispatchAction.java:205) at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:162) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044) at org.eclipse.core.runtime.Platform.run(Platform.java:783) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:148) at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:160) at org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:1784) at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1452) at org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage.select(JavaOutlinePage.java:1194) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.synchronizeOutlinePage(JavaEditor.java:1838) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.synchronizeOutlinePage(JavaEditor.java:1825) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.selectionChanged(JavaEditor.java:1925) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$EditorSelectionChangedListener.selectionChanged(JavaEditor.java:295) at org.eclipse.jface.text.TextViewer.firePostSelectionChanged(TextViewer.java:2302) at org.eclipse.jface.text.TextViewer.firePostSelectionChanged(TextViewer.java:2254) at org.eclipse.jface.text.TextViewer$4.run(TextViewer.java:2233) at org.eclipse.swt.widgets.Display.runTimer(Display.java:3178) at org.eclipse.swt.widgets.Display.messageProc(Display.java:2510) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1680) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2763) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1734) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1698) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338) at org.eclipse.core.launcher.Main.basicRun(Main.java:282) at org.eclipse.core.launcher.Main.run(Main.java:977) at org.eclipse.core.launcher.Main.main(Main.java:952) "VM Thread" prio=5 tid=0x009fb730 nid=0x1200 runnable "VM Periodic Task Thread" prio=10 tid=0x009fc620 nid=0x14d4 waiting on condition "Suspend Checker Thread" prio=10 tid=0x0003d4b8 nid=0x1130 runnable Found one Java-level deadlock: ============================= "Worker-7": waiting to lock monitor 0x009c05dc (object 0x120192b8, a java.util.ArrayList), which is held by "org.eclipse.jdt.internal.ui.text.JavaReconciler" "org.eclipse.jdt.internal.ui.text.JavaReconciler": waiting to lock monitor 0x009c063c (object 0x12019258, a org.eclipse.jdt.internal.corext.util.LRUMap), which is held by "Worker-7" Java stack information for the threads listed above: =================================================== "Worker-7": at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.addTypeHierarchyToCache(SuperTypeHierarchyCache.java:124) - waiting to lock <0x120192b8> (a java.util.ArrayList) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.getTypeHierarchy(SuperTypeHierarchyCache.java:115) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.getTypeHierarchy(SuperTypeHierarchyCache.java:81) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.getMethodOverrideTester(SuperTypeHierarchyCache.java:88) - locked <0x12019258> (a org.eclipse.jdt.internal.corext.util.LRUMap) at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.getOverrideIndicators(OverrideIndicatorLabelDecorator.java:162) at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.computeAdornmentFlags(OverrideIndicatorLabelDecorator.java:129) at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.decorate(OverrideIndicatorLabelDecorator.java:246) at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:219) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:66) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044) at org.eclipse.core.runtime.Platform.run(Platform.java:783) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:313) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:299) at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:292) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76) "org.eclipse.jdt.internal.ui.text.JavaReconciler": at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.removeMethodOverrideTester(SuperTypeHierarchyCache.java:97) - waiting to lock <0x12019258> (a org.eclipse.jdt.internal.corext.util.LRUMap) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.removeHierarchyEntryFromCache(SuperTypeHierarchyCache.java:183) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.access$1(SuperTypeHierarchyCache.java:182) at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache$HierarchyCacheEntry.typeHierarchyChanged(SuperTypeHierarchyCache.java:39) - locked <0x120192b8> (a java.util.ArrayList) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy$1.run(TypeHierarchy.java:386) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044) at org.eclipse.core.runtime.Platform.run(Platform.java:783) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.fireChange(TypeHierarchy.java:381) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.elementChanged(TypeHierarchy.java:350) at org.eclipse.jdt.internal.core.DeltaProcessor$3.run(DeltaProcessor.java:1432) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044) at org.eclipse.core.runtime.Platform.run(Platform.java:783) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1422) at org.eclipse.jdt.internal.core.DeltaProcessor.firePostChangeDelta(DeltaProcessor.java:1270) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1245) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:758) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:777) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1081) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:98) - locked <0x11c775e8> (a org.eclipse.jdt.internal.core.CompilationUnit) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044) at org.eclipse.core.runtime.Platform.run(Platform.java:783) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:82) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:174) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:120) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:103) at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:328) - locked <0x11c77ab0> (a java.lang.Object) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:170) Found 1 deadlock. I had of course to kill my eclipse session as I was not able to do anything aftre this deadlock. I restarted it and was unable to reproduce the problem redoing same scenario... Hope threads dump will help you to see how this deadlock could happen

Files changed in fix:
org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/util/SuperTypeHierarchyCache.java