Community
Participate
Working Groups
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
Users can get out of the deadlock by canceling the update job of the type histroy.
The problem is that the history joins the update job while holding a lock which the update job wants to aquire.
Fixed for build >= I20060117.
Verified in I20060214-0010 through code inspection in OpenTypeHistory to which TypeInfoHistory has been renamed.