Project: JDT
Bug 123224 Deadlock starting Eclipse
Reported: 2006-01-10 05:55:46 | Status: verified fixed

M4 The VM dump: Full thread dump Java HotSpot(TM) Client VM (1.5.0_05-b05 mixed mode): "ModalContext" prio=7 tid=0x0549eca0 nid=0xfd4 waiting on condition [0x0652f000..0x0652fd68] at java.lang.Thread.sleep(Native Method) at org.eclipse.core.internal.jobs.JobManager.join(JobManager.java:752) at org.eclipse.jdt.internal.ui.dialogs.TypeSelectionDialog2$1$ConsistencyRunnable.run(TypeSelectionDialog2.java:287) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:113) "Worker-9" prio=5 tid=0x05258ff0 nid=0xb84 in Object.wait() [0x04fef000..0x04fefae8] at java.lang.Object.wait(Native Method) - waiting on <0x11860318> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173) - locked <0x11860318> (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:51) "MultiThreadedHttpConnectionManager cleanup" daemon prio=5 tid=0x053c1cf8 nid=0x84c in Object.wait() [0x0506f000..0x0506fbe8] at java.lang.Object.wait(Native Method) - waiting on <0x131fbe38> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116) - locked <0x131fbe38> (a java.lang.ref.ReferenceQueue$Lock) at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$ReferenceQueueThread.run(MultiThreadedHttpConnection Manager.java:1082) "Worker-8" prio=5 tid=0x053c8910 nid=0xbb4 in Object.wait() [0x0666f000..0x0666fc68] at java.lang.Object.wait(Native Method) - waiting on <0x142db408> (a org.eclipse.core.internal.jobs.Semaphore) at org.eclipse.core.internal.jobs.Semaphore.acquire(Semaphore.java:38) - locked <0x142db408> (a org.eclipse.core.internal.jobs.Semaphore) at org.eclipse.core.internal.jobs.JobManager.join(JobManager.java:680) at org.eclipse.core.internal.jobs.InternalJob.join(InternalJob.java:302) at org.eclipse.core.runtime.jobs.Job.join(Job.java:364) at org.eclipse.jdt.internal.corext.util.TypeInfoHistory$UpdateJob.run(TypeInfoHistory.java:174) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58) "Thread-4" prio=5 tid=0x052e9670 nid=0xd80 runnable [0x0656f000..0x0656fa68] at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at com.jcraft.jsch.IO.getByte(Unknown Source) at com.jcraft.jsch.Session.read(Unknown Source) at com.jcraft.jsch.Session.run(Unknown Source) at java.lang.Thread.run(Thread.java:595) "Worker-7" prio=5 tid=0x05113e50 nid=0x8a4 runnable [0x064ef000..0x064efbe8] at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384) - locked <0x131cfc00> (a java.net.SocksSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:450) at java.net.ServerSocket.accept(ServerSocket.java:421) at com.ibm.magnolia.ui.internal.ResourceServer$1.run(ResourceServer.java:141) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58) "Worker-6" prio=5 tid=0x0529a6e0 nid=0x858 waiting on condition [0x0644f000..0x0644fc68] at java.lang.Thread.sleep(Native Method) at org.eclipse.core.internal.jobs.JobManager.join(JobManager.java:752) at org.eclipse.jdt.internal.corext.util.TypeInfoHistory.checkConsistency(TypeInfoHistory.java:266) - locked <0x13663c38> (a org.eclipse.jdt.internal.corext.util.TypeInfoHistory) at org.eclipse.jdt.internal.ui.JavaPlugin.initializeAfterLoad(JavaPlugin.java:385) at org.eclipse.jdt.internal.ui.InitializeAfterLoadJob$RealJob.run(InitializeAfterLoadJob.java:36) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58) "Worker-5" prio=5 tid=0x05234ab8 nid=0xc58 in Object.wait() [0x0640f000..0x0640fce8] at java.lang.Object.wait(Native Method) - waiting on <0x11860318> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173) - locked <0x11860318> (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:51) "Worker-4" prio=5 tid=0x05234728 nid=0xd9c in Object.wait() [0x063cf000..0x063cfd68] at java.lang.Object.wait(Native Method) - waiting on <0x11860318> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173) - locked <0x11860318> (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:51) "Worker-3" prio=5 tid=0x0510c780 nid=0xcec in Object.wait() [0x0638f000..0x0638f9e8] at java.lang.Object.wait(Native Method) - waiting on <0x11860318> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173) - locked <0x11860318> (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:51) "Worker-2" prio=5 tid=0x052375f0 nid=0xd7c waiting for monitor entry [0x062cf000..0x062cfa68] at org.eclipse.jdt.internal.corext.util.TypeInfoHistory.clearUpdateJob(TypeInfoHistory.java) - waiting to lock <0x13663c38> (a org.eclipse.jdt.internal.corext.util.TypeInfoHistory) at org.eclipse.jdt.internal.corext.util.TypeInfoHistory.access$0(TypeInfoHistory.java:307) at org.eclipse.jdt.internal.corext.util.TypeInfoHistory$UpdateJob.run(TypeInfoHistory.java:183) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58) "Worker-1" prio=5 tid=0x03858368 nid=0xd78 in Object.wait() [0x04c1f000..0x04c1fae8] at java.lang.Object.wait(Native Method) - waiting on <0x11860318> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173) - locked <0x11860318> (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:51) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x039cc740 nid=0xce4 in Object.wait() [0x0590f000..0x0590fb6 8] at java.lang.Object.wait(Native Method) - waiting on <0x12697750> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176) - locked <0x12697750> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Java indexing" daemon prio=4 tid=0x0399b630 nid=0x780 in Object.wait() [0x0502f000..0x0502fbe8] at java.lang.Object.wait(Native Method) - waiting on <0x122e8eb8> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Object.wait(Object.java:474) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:349) - locked <0x122e8eb8> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:595) "Worker-0" prio=5 tid=0x0342cd88 nid=0xca4 waiting for monitor entry [0x04bdf000..0x04bdfce8] at org.eclipse.jdt.internal.corext.util.TypeInfoHistory.markAsInconsistent(TypeInfoHistory.java) - waiting to lock <0x13663c38> (a org.eclipse.jdt.internal.corext.util.TypeInfoHistory) at org.eclipse.jdt.internal.corext.util.TypeInfoHistory$TypeHistoryDeltaListener.elementChanged(TypeInfoHistory.java:77) at org.eclipse.jdt.internal.core.DeltaProcessor$3.run(DeltaProcessor.java:1421) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.runtime.Platform.run(Platform.java:785) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1411) at org.eclipse.jdt.internal.core.DeltaProcessor.firePostChangeDelta(DeltaProcessor.java:1259) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1234) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:760) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1714) at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3949) at org.eclipse.jdt.core.JavaCore.setClasspathContainer(JavaCore.java:4123) at org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize(JREContainerInitializer.java:56) at org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:1824) at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:1784) at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:1163) at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:1442) at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2144) at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2052) at org.eclipse.jdt.internal.core.search.JavaSearchScope.add(JavaSearchScope.java:107) at org.eclipse.jdt.internal.core.search.JavaWorkspaceScope.initialize(JavaWorkspaceScope.java:84) at org.eclipse.jdt.internal.core.search.JavaSearchScope.<init>(JavaSearchScope.java:61) at org.eclipse.jdt.internal.core.search.JavaSearchScope.<init>(JavaSearchScope.java:57) at org.eclipse.jdt.internal.core.search.JavaWorkspaceScope.<init>(JavaWorkspaceScope.java:29) at org.eclipse.jdt.internal.core.JavaModelManager.getWorkspaceScope(JavaModelManager.java:1654) at org.eclipse.jdt.internal.core.search.BasicSearchEngine.createWorkspaceScope(BasicSearchEngine.java:155) at org.eclipse.jdt.core.search.SearchEngine.createWorkspaceScope(SearchEngine.java:392) at org.eclipse.jdt.internal.core.BinaryType.newTypeHierarchy(BinaryType.java:868) at org.eclipse.jdt.internal.core.BinaryType.newTypeHierarchy(BinaryType.java:888) at org.eclipse.jdt.internal.core.BinaryType.newTypeHierarchy(BinaryType.java:858) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.createTypeHierarchy(TypeHierarchyLifeCycle.java:118) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.doHierarchyRefresh(TypeHierarchyLifeCycle.java:157) - locked <0x1279b1b0> (a org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart.doRestoreInBackground(TypeHierarchyViewPart.java:1505 ) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart.access$9(TypeHierarchyViewPart.java:1504) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart$15.run(TypeHierarchyViewPart.java:1490) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58) "Start Level Event Dispatcher" daemon prio=5 tid=0x034607e8 nid=0xed0 in Object.wait() [0x0372f000..0x0372fd68] at java.lang.Object.wait(Native Method) - waiting on <0x1183be18> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at java.lang.Object.wait(Object.java:474) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349) - locked <0x1183be18> (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=0x03464cf0 nid=0xe70 in Object.wait() [0x036ef000..0x036ef9e8] at java.lang.Object.wait(Native Method) - waiting on <0x1183be80> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at java.lang.Object.wait(Object.java:474) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349) - locked <0x1183be80> (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=0x0330bcc8 nid=0xa5c waiting on condition [0x036af000..0x036afa68] at java.lang.Thread.sleep(Native Method) at org.eclipse.osgi.framework.adaptor.core.StateManager.run(StateManager.java:332) at java.lang.Thread.run(Thread.java:595) "Low Memory Detector" daemon prio=5 tid=0x00ea2f40 nid=0xfd8 runnable [0x00000000..0x00000000] "CompilerThread0" daemon prio=10 tid=0x00e86698 nid=0x8f0 waiting on condition [0x00000000..0x035ef6cc] "Signal Dispatcher" daemon prio=10 tid=0x00e97de0 nid=0xf88 waiting on condition [0x00000000..0x00000000] "YJPAgent-CPUSampler" daemon prio=5 tid=0x00e6a718 nid=0xea0 runnable [0x00000000..0x00000000] "YJPAgent-RequestListener" daemon prio=2 tid=0x032b0448 nid=0x854 runnable [0x0352f000..0x0352fae8] at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384) - locked <0x117366b0> (a java.net.SocksSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:450) at java.net.ServerSocket.accept(ServerSocket.java:421) at com.yourkit.runtime.Core$1.run(Core.java:275) at java.lang.Thread.run(Thread.java:595) "YJPAgent-Telemetry" daemon prio=2 tid=0x00e98af0 nid=0xe7c waiting on condition [0x034ef000..0x034efb68] at java.lang.Thread.sleep(Native Method) at com.yourkit.runtime.telemetry.TelemetryThread.run(TelemetryThread.java:215) "Finalizer" daemon prio=9 tid=0x00e85598 nid=0xd84 in Object.wait() [0x032af000..0x032afa68] at java.lang.Object.wait(Native Method) - waiting on <0x11736840> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116) - locked <0x11736840> (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=0x00e38200 nid=0xf90 in Object.wait() [0x0326f000..0x0326fae8] at java.lang.Object.wait(Native Method) - waiting on <0x117368c0> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:474) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) - locked <0x117368c0> (a java.lang.ref.Reference$Lock) "main" prio=7 tid=0x000372d0 nid=0x268 runnable [0x0007e000..0x0007fc40] at org.eclipse.swt.internal.win32.OS.WaitMessage(Native Method) at org.eclipse.swt.widgets.Display.sleep(Display.java:3673) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:157) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:317) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:453) at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:261) at org.eclipse.ui.internal.progress.ProgressManager$3.run(ProgressManager.java:866) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:900) at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:876) at org.eclipse.ui.internal.progress.ProgressManager.run(ProgressManager.java:1075) at org.eclipse.jdt.internal.ui.dialogs.TypeSelectionDialog2.ensureConsistency(TypeSelectionDialog2.java:331) at org.eclipse.jdt.internal.ui.dialogs.TypeSelectionDialog2.open(TypeSelectionDialog2.java:202) at org.eclipse.jdt.internal.ui.actions.OpenTypeAction.run(OpenTypeAction.java:57) at org.eclipse.jdt.internal.ui.actions.OpenTypeAction.run(OpenTypeAction.java:78) at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251) at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:223) at org.eclipse.jface.commands.ActionHandler.execute(ActionHandler.java:117) at org.eclipse.core.commands.Command.execute(Command.java:306) at org.eclipse.core.commands.ParameterizedCommand.execute(ParameterizedCommand.java:401) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:461) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:786) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:833) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:555) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:498) at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:118) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:978) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:913) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:923) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:951) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:947) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1261) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3311) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3212) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3963) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1705) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2903) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1762) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1726) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:397) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:109) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:379) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177) 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:585) 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=10 tid=0x00e80860 nid=0x1e0 runnable "VM Periodic Task Thread" prio=10 tid=0x00ebcd08 nid=0xbfc waiting on condition

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