Community
Participate
Working Groups
JDT/Core HEAD from 04/19 After patching with JDT/Core, and restarting workspace (multi-window) I got the following deadlock (thread dump). java.lang.ClassCircularityError: org/eclipse/pde/internal/core/WorkspaceModelManager at org.eclipse.pde.internal.core.PDECore.initializeModels(PDECore.java:376) at org.eclipse.pde.internal.core.PDECore.getModelManager(PDECore.java:301) at org.eclipse.pde.internal.core.RequiredPluginsInitializer.initialize(RequiredPluginsInitializer.java:36) at org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:1416) at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:971) at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:1304) at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2065) at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:1973) at org.eclipse.jdt.internal.core.JavaProject.isOnClasspath(JavaProject.java:2251) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$CompilationUnitAnnotationModel.internalBeginReporting(CompilationUnitDocumentP rovider.java:467) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$CompilationUnitAnnotationModel.beginReportingSequence(CompilationUnitDocumentP rovider.java:457) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:119) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:103) at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:307) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:170) Full thread dump Java HotSpot(TM) Client VM (1.4.2_08-b03 mixed mode): "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x033f2a48 nid=0xc88 waiting for monitor entry [541f000..541fd8c] at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:90) - waiting to lock <0x168fa708> (a org.eclipse.jdt.internal.core.CompilationUnit) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:160) 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:307) - locked <0x179bacd0> (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=0x033d6b00 nid=0xc60 in Object.wait() [52af000..52afd8c] at java.lang.Object.wait(Native Method) - waiting on <0x17475aa8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176) - locked <0x17475aa8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x041dcd88 nid=0xd60 in Object.wait() [4f4f000..4f4fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x17b3c308> (a org.eclipse.core.internal.jobs.ThreadJob) at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:160) - locked <0x17b3c308> (a org.eclipse.core.internal.jobs.ThreadJob) at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:88) at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:186) at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:96) at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1669) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1709) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:782) at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2771) at org.eclipse.jdt.core.JavaCore$3.run(JavaCore.java:3830) at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:718) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1714) at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3639) at org.eclipse.jdt.core.JavaCore.setClasspathContainer(JavaCore.java:3813) at org.eclipse.pde.internal.core.ModelEntry.updateClasspathContainer(ModelEntry.java:110) at org.eclipse.pde.internal.core.RequiredPluginsInitializer.initialize(RequiredPluginsInitializer.java:40) at org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:1416) at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:971) at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:1304) at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2065) at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:1973) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:574) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:647) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:608) at org.eclipse.jdt.internal.core.JavaProject.getAllPackageFragmentRoots(JavaProject.java:1338) at org.eclipse.jdt.internal.core.JavaProjectElementInfo.getAllPackageFragmentRoots(JavaProjectElementInfo.java:172) at org.eclipse.jdt.internal.core.JavaProjectElementInfo.newNameLookup(JavaProjectElementInfo.java:255) - locked <0x17174fc8> (a org.eclipse.jdt.internal.core.JavaProjectElementInfo) at org.eclipse.jdt.internal.core.JavaProject.newNameLookup(JavaProject.java:2363) at org.eclipse.jdt.internal.core.SearchableEnvironment.<init>(SearchableEnvironment.java:60) at org.eclipse.jdt.internal.core.SearchableEnvironment.<init>(SearchableEnvironment.java:74) at org.eclipse.jdt.internal.core.CancelableNameEnvironment.<init>(CancelableNameEnvironment.java:26) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:148) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:214) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:79) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:718) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:777) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1080) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:91) - locked <0x168fa708> (a org.eclipse.jdt.internal.core.CompilationUnit) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:160) 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:307) - locked <0x16b29418> (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=0x042aca38 nid=0xdbc in Object.wait() [504f000..504fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x17b3c4a8> (a org.eclipse.core.internal.jobs.ThreadJob) at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:160) - locked <0x17b3c4a8> (a org.eclipse.core.internal.jobs.ThreadJob) at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:88) at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:186) at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:96) at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1669) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1709) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:782) at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2771) at org.eclipse.jdt.core.JavaCore$3.run(JavaCore.java:3830) at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:718) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1714) at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3639) at org.eclipse.jdt.core.JavaCore.setClasspathContainer(JavaCore.java:3813) at org.eclipse.pde.internal.core.ModelEntry.updateClasspathContainer(ModelEntry.java:110) at org.eclipse.pde.internal.core.RequiredPluginsInitializer.initialize(RequiredPluginsInitializer.java:40) at org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:1416) at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:971) at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:1304) at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2065) at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:1973) at org.eclipse.jdt.internal.core.JavaProject.isOnClasspath(JavaProject.java:2251) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$CompilationUnitAnnotationModel.internalBeginReporting(CompilationUnitDocumentP rovider.java:467) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$CompilationUnitAnnotationModel.beginReportingSequence(CompilationUnitDocumentP rovider.java:457) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:119) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:103) at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:307) - locked <0x164db338> (a java.lang.Object) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:170) "Java indexing" daemon prio=4 tid=0x03482010 nid=0x57c in Object.wait() [4e4f000..4e4fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x16105ee0> (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:346) - locked <0x16105ee0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:534) "Worker-0" prio=5 tid=0x00a74808 nid=0xb74 in Object.wait() [4c1f000..4c1fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x128a77c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:168) - locked <0x128a77c8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:200) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60) "Start Level Event Dispatcher" daemon prio=5 tid=0x034d2958 nid=0xdc0 in Object.wait() [3fcf000..3fcfd8c] at java.lang.Object.wait(Native Method) - waiting on <0x127dcbb0> (a org.eclipse.osgi.framework.eventmgr.EventThread) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162) - locked <0x127dcbb0> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100) "OSGi Console" prio=5 tid=0x034bda50 nid=0xac8 runnable [3ecf000..3ecfd8c] at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:194) at java.io.BufferedInputStream.read1(BufferedInputStream.java:220) at java.io.BufferedInputStream.read(BufferedInputStream.java:277) - locked <0x127806a0> (a java.io.BufferedInputStream) at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:408) at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:450) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182) - locked <0x127db208> (a java.io.InputStreamReader) at java.io.InputStreamReader.read(InputStreamReader.java:167) at java.io.BufferedReader.fill(BufferedReader.java:136) at java.io.BufferedReader.readLine(BufferedReader.java:299) - locked <0x127db208> (a java.io.InputStreamReader) at java.io.BufferedReader.readLine(BufferedReader.java:362) at org.eclipse.osgi.framework.internal.core.FrameworkConsole.console(FrameworkConsole.java:273) at org.eclipse.osgi.framework.internal.core.FrameworkConsole.console(FrameworkConsole.java:237) at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run(FrameworkConsole.java:208) at java.lang.Thread.run(Thread.java:534) "Framework Event Dispatcher" daemon prio=5 tid=0x034a1470 nid=0xf3c in Object.wait() [3dcf000..3dcfd8c] at java.lang.Object.wait(Native Method) - waiting on <0x163bfed8> (a org.eclipse.swt.widgets.RunnableLock) at java.lang.Object.wait(Object.java:429) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:164) - locked <0x163bfed8> (a org.eclipse.swt.widgets.RunnableLock) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:28) at org.eclipse.swt.widgets.Display.syncExec(Display.java:3220) at org.eclipse.ui.internal.AbstractWorkingSetManager.firePropertyChange(AbstractWorkingSetManager.java:281) at org.eclipse.ui.internal.AbstractWorkingSetManager.getUpdater(AbstractWorkingSetManager.java:526) at org.eclipse.ui.internal.AbstractWorkingSetManager.bundleChanged(AbstractWorkingSetManager.java:487) - locked <0x15fa6268> (a org.eclipse.ui.internal.WorkingSetManager) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:1205) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:186) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:104) "State Data Manager" daemon prio=5 tid=0x00a24848 nid=0xa40 waiting on condition [3ccf000..3ccfd8c] at java.lang.Thread.sleep(Native Method) at org.eclipse.osgi.internal.resolver.StateManager.run(StateManager.java:187) at java.lang.Thread.run(Thread.java:534) "Signal Dispatcher" daemon prio=10 tid=0x00a49808 nid=0xa44 waiting on condition [0..0] "YJP CPU Sampler" daemon prio=5 tid=0x00a237f0 nid=0x8ec runnable [0..0] "YJP RequestServer" daemon prio=5 tid=0x00a11e68 nid=0xf5c runnable [369f000..369fd8c] at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353) - locked <0x1277da28> (a java.net.PlainSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:448) at java.net.ServerSocket.accept(ServerSocket.java:419) at com.yourkit.runtime.RequestServer.startServerImpl(RequestServer.java:236) at com.yourkit.runtime.RequestServer.access$000(RequestServer.java:17) at com.yourkit.runtime.RequestServer$1.run(RequestServer.java:61) "Finalizer" daemon prio=9 tid=0x00a1f0b0 nid=0xd80 in Object.wait() [2f9f000..2f9fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x1277db50> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x1277db50> (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=0x00a13688 nid=0xaf0 in Object.wait() [2e9f000..2e9fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x1277dbb8> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:429) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115) - locked <0x1277dbb8> (a java.lang.ref.Reference$Lock) "main" prio=7 tid=0x00036008 nid=0xf84 waiting for monitor entry [7e000..7fc38] at org.eclipse.jdt.internal.core.JavaProjectElementInfo.resetCaches(JavaProjectElementInfo.java:264) - waiting to lock <0x17174fc8> (a org.eclipse.jdt.internal.core.JavaProjectElementInfo) at org.eclipse.jdt.internal.core.JavaProject.updatePackageFragmentRoots(JavaProject.java:2933) at org.eclipse.jdt.internal.core.SetClasspathOperation.executeOperation(SetClasspathOperation.java:261) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:718) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1714) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:782) at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2771) at org.eclipse.jdt.internal.core.SetClasspathOperation$5.run(SetClasspathOperation.java:684) at org.eclipse.jdt.internal.core.JavaModelOperation.runPostActions(JavaModelOperation.java:804) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:721) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1714) at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3639) at org.eclipse.jdt.core.JavaCore.setClasspathContainer(JavaCore.java:3813) at org.eclipse.pde.internal.core.ModelEntry.updateClasspathContainer(ModelEntry.java:110) at org.eclipse.pde.internal.core.RequiredPluginsInitializer.initialize(RequiredPluginsInitializer.java:40) at org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:1416) at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:971) at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:1304) at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2065) at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:1973) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:574) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:647) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:608) at org.eclipse.jdt.internal.core.JavaProject.getAllPackageFragmentRoots(JavaProject.java:1338) at org.eclipse.jdt.internal.core.JavaProject.getAllPackageFragmentRoots(JavaProject.java:1333) at org.eclipse.jdt.internal.core.JavaProject.findPackageFragmentRoot0(JavaProject.java:1094) at org.eclipse.jdt.internal.core.JavaProject.findPackageFragmentRoot(JavaProject.java:1085) at org.eclipse.jdt.ui.StandardJavaElementContentProvider.getResources(StandardJavaElementContentProvider.java:297) at org.eclipse.jdt.ui.StandardJavaElementContentProvider.getChildren(StandardJavaElementContentProvider.java:176) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider.getChildren(PackageExplorerContentProvider.java:158) at org.eclipse.jdt.ui.StandardJavaElementContentProvider.hasChildren(StandardJavaElementContentProvider.java:221) at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:1259) at org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.isExpandable(ProblemTreeViewer.java:159) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$PackageExplorerProblemTreeViewer.isExpandable(PackageExplorerPart.java:293) at org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(AbstractTreeViewer.java:1721) at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:433) at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:411) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:391) at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand(AbstractTreeViewer.java:971) at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand(AbstractTreeViewer.java:968) at org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget(AbstractTreeViewer.java:1494) at org.eclipse.jface.viewers.StructuredViewer.setSelectionToWidget(StructuredViewer.java:1484) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$PackageExplorerProblemTreeViewer.setSelectionToWidget(PackageExplorerPart.java:599) at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1440) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.showInput(PackageExplorerPart.java:1446) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.editorActivated(PackageExplorerPart.java:1411) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$1.partActivated(PackageExplorerPart.java:210) at org.eclipse.ui.internal.PartListenerList$1.run(PartListenerList.java:72) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1021) at org.eclipse.core.runtime.Platform.run(Platform.java:757) at org.eclipse.ui.internal.PartListenerList.fireEvent(PartListenerList.java:58) at org.eclipse.ui.internal.PartListenerList.firePartActivated(PartListenerList.java:70) at org.eclipse.ui.internal.WorkbenchPage.firePartActivated(WorkbenchPage.java:1488) at org.eclipse.ui.internal.WorkbenchPage.onActivate(WorkbenchPage.java:2140) at org.eclipse.ui.internal.WorkbenchWindow$5.run(WorkbenchWindow.java:2350) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.ui.internal.WorkbenchWindow.setActivePage(WorkbenchWindow.java:2336) at org.eclipse.ui.internal.WorkbenchWindow.restoreState(WorkbenchWindow.java:1858) at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1408) at org.eclipse.ui.internal.Workbench.access$9(Workbench.java:1358) at org.eclipse.ui.internal.Workbench$14.run(Workbench.java:1241) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1021) at org.eclipse.core.runtime.Platform.run(Platform.java:757) at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1185) at org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(WorkbenchConfigurer.java:173) at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:712) at org.eclipse.ui.internal.Workbench.init(Workbench.java:962) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1510) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:306) 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:228) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:156) 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:316) at org.eclipse.core.launcher.Main.basicRun(Main.java:269) at org.eclipse.core.launcher.Main.run(Main.java:948) at org.eclipse.core.launcher.Main.main(Main.java:932) "VM Thread" prio=5 tid=0x009cafd8 nid=0xe80 runnable "VM Periodic Task Thread" prio=10 tid=0x00a11288 nid=0x634 waiting on condition "Suspend Checker Thread" prio=10 tid=0x00a0bba0 nid=0x23c runnable
Ignoring initial classloader circularity (could be a PDE issue), problem comes from interference between one editor reconciling while package explorer is being rendered. Reconcile - lock on projectElementInfo (to compute namelookup) - initializes classpath - calls out client CP initializer - execute operation which needs resource lock --> WAIT Main (pkg explorer) - takes resource lock - initializes classpath - attempt to lock on projectElementInfo to reset pkg fragment roots cache - DEADLOCK
No 3rd party code should run within our projectElementInfo lock. Proposal is to stop synchronizing namelookup creation.
Changed JavaProjectElementInfo to use a member class (ProjectCache) to store the allPackageFragmentRootsCache, allPackageFragmentsCache, and pathToResolvedEntries. This cache is reset at once (by nulling the projectCache field), and it is initialized at once (in getProjectCache()). No need to synchronize these methods any longer.
Verified for 3.1 M7 using build I20050509-2010 + jdt.core HEAD.
*** Bug 84162 has been marked as a duplicate of this bug. ***