Community
Participate
Working Groups
- opened the type hierarchy on IChange - selected org.eclipse.ui - pressed refresh from local (change two files directly on disk) ==> deadlock: Assume that: JavaElement.getElementInfo does a synchronized on fgJavaModelManager one of the jdt.core methods on the main thread also do a synchronized on fgJavaModelManager. Full thread dump Classic VM (JDK-1.2.2_007, native threads): "BusyCursorRunnableContext-Thread" (TID:0x1ecd460, sys_thread_t:0x1150dbc8, state:MW, native ID:0x684) prio=5 at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java, Compiled Code) at org.eclipse.jdt.internal.core.JavaProject.getJavaProjectElementInfo(JavaProject.java, Compiled Code) at org.eclipse.jdt.internal.core.JavaProject.getSearchableNameEnvironment(JavaProject.java:828) at org.eclipse.jdt.internal.core.hierarchy.HierarchyBuilder.<init>(HierarchyBuilder.java:56) at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.<init>(IndexBasedHierarchyBuilder.java:84) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.compute(TypeHierarchy.java:240) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.refresh(TypeHierarchy.java:1026) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle$1.run(TypeHierarchyLifeCycle.java:111) at org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext$ThreadContext.run(BusyIndicatorRunnableContext.java:40) "ModalContext" (TID:0x1ff8d50, sys_thread_t:0x114f1a60, state:CW, native ID:0x690) prio=5 at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java, Compiled Code) at org.eclipse.ui.internal.Semaphore.acquire(Semaphore.java, Compiled Code) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java, Compiled Code) at org.eclipse.swt.widgets.Display.syncExec(Display.java, Compiled Code) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart.checkedSyncExec(TypeHierarchyViewPart.java:626) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart.typeHierarchyChanged(TypeHierarchyViewPart.java:572) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.fireChange(TypeHierarchyLifeCycle.java, Compiled Code) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.typeHierarchyChanged(TypeHierarchyLifeCycle.java:141) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.fireChange(TypeHierarchy.java, Compiled Code) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.elementChanged(TypeHierarchy.java:306) at org.eclipse.jdt.internal.core.JavaModelManager.fire(JavaModelManager.java, Compiled Code) at org.eclipse.jdt.internal.core.JavaModelManager.resourceChanged(JavaModelManager.java, Compiled Code) at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java, Compiled Code) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java, Compiled Code) at org.eclipse.core.runtime.Platform.run(Platform.java, Compiled Code) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java, Compiled Code) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java, Compiled Code) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java, Compiled Code) at org.eclipse.core.internal.resources.Workspace.broadcastChanges(Workspace.java, Compiled Code) at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java, Compiled Code) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java, Compiled Code) at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:79) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:102) "org.eclipse.jdt.internal.ui.text.JavaReconciler" (TID:0x1eaf470, sys_thread_t:0xcf5d498, state:CW, native ID:0x48c) prio=1 at java.lang.Object.wait(Native Method) at org.eclipse.jdt.internal.ui.text.JavaReconciler$BackgroundThread.run(JavaReconciler.java, Compiled Code) "org.eclipse.jdt.internal.ui.text.JavaReconciler" (TID:0x1f1f958, sys_thread_t:0xcf0e868, state:CW, native ID:0x620) prio=1 at java.lang.Object.wait(Native Method) at org.eclipse.jdt.internal.ui.text.JavaReconciler$BackgroundThread.run(JavaReconciler.java, Compiled Code) "org.eclipse.jdt.internal.ui.text.JavaReconciler" (TID:0x1f64160, sys_thread_t:0xcf18ca0, state:CW, native ID:0x4f8) prio=1 at java.lang.Object.wait(Native Method) at org.eclipse.jdt.internal.ui.text.JavaReconciler$BackgroundThread.run(JavaReconciler.java, Compiled Code) "org.eclipse.jdt.internal.ui.text.JavaReconciler" (TID:0x22c20b8, sys_thread_t:0xceaed50, state:CW, native ID:0x5c8) prio=1 at java.lang.Object.wait(Native Method) at org.eclipse.jdt.internal.ui.text.JavaReconciler$BackgroundThread.run(JavaReconciler.java, Compiled Code) "Java indexing: org.eclipse.jdt.internal.core.search.indexing.IndexManager" (TID:0x248d3f8, sys_thread_t:0xc7c45b8, state:CW, native ID:0x460) prio=5 at java.lang.Thread.sleep(Native Method) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java, Compiled Code) at java.lang.Thread.run(Thread.java:479) "SymcJIT-LazyCompilation-0" (TID:0x2015578, sys_thread_t:0xa9ffc68, state:CW, native ID:0x5d0) prio=1 at SymantecJITCompilationThread.DoCompileMethod(Native Method) at SymantecJITCompilationThread.run(JITcompilationthread.java, Compiled Code) "SymcJIT-LazyCompilation-PA" (TID:0x2015540, sys_thread_t:0xa16b4a0, state:CW, native ID:0x4d0) prio=10 at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:424) at SymantecJITCompilationThread.run(JITcompilationthread.java, Compiled Code) "Finalizer" (TID:0x20106c0, sys_thread_t:0xa0c18a8, state:CW, native ID:0x64c) prio=8 at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java, Compiled Code) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java, Compiled Code) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:174) "Reference Handler" (TID:0x2010498, sys_thread_t:0xa08cd00, state:CW, native ID:0x594) prio=10 at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java, Compiled Code) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:114) "Signal dispatcher" (TID:0x20105d0, sys_thread_t:0xa0a6370, state:R, native ID:0x69c) prio=5 "main" (TID:0x2010380, sys_thread_t:0x2f3b28, state:CW, native ID:0x5a0) prio=5 at java.lang.Object.wait(Native Method) at java.lang.Thread.join(Thread.java:920) at java.lang.Thread.join(Thread.java:973) at org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext$ThreadContext.sync(BusyIndicatorRunnableContext.java:57) at org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext.internalRun(BusyIndicatorRunnableContext.java:113) at org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext.access$0(BusyIndicatorRunnableContext.java:102) at org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext$BusyRunnable.run(BusyIndicatorRunnableContext.java:73) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java, Compiled Code) at org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext.run(BusyIndicatorRunnableContext.java:90) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.ensureRefreshedTypeHierarchy(TypeHierarchyLifeCycle.java:120) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart$9.run(TypeHierarchyViewPart.java:579) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java, Compiled Code) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java, Compiled Code) at org.eclipse.swt.widgets.Display.syncExec(Display.java, Compiled Code) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart.checkedSyncExec(TypeHierarchyViewPart.java:626) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyViewPart.typeHierarchyChanged(TypeHierarchyViewPart.java:572) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.fireChange(TypeHierarchyLifeCycle.java, Compiled Code) at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.typeHierarchyChanged(TypeHierarchyLifeCycle.java:141) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.fireChange(TypeHierarchy.java, Compiled Code) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.elementChanged(TypeHierarchy.java:306) at org.eclipse.jdt.internal.core.JavaModelManager.fire(JavaModelManager.java, Compiled Code) at org.eclipse.jdt.internal.core.JarPackageFragmentRoot.attachSource(JarPackageFragmentRoot.java, Compiled Code) at org.eclipse.jdt.internal.core.JarPackageFragmentRoot.openWhenClosed(JarPackageFragmentRoot.java:553) at org.eclipse.jdt.internal.core.JavaElement.openHierarchy(JavaElement.java, Compiled Code) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java, Compiled Code) at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java, Compiled Code) at org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentsInRoots(JavaProject.java, Compiled Code) at org.eclipse.jdt.internal.core.JavaProject.getAllPackageFragments(JavaProject.java:359) at org.eclipse.jdt.internal.core.NameLookup.configureFromProject(NameLookup.java, Compiled Code) at org.eclipse.jdt.internal.core.NameLookup.<init>(NameLookup.java:58) at org.eclipse.jdt.internal.core.JavaProject.getNameLookup(JavaProject.java, Compiled Code) at org.eclipse.jdt.internal.core.JavaProject.findPackageFragmentRoot(JavaProject.java, Compiled Code) at org.eclipse.jdt.internal.core.JavaProjectElementInfo.computeNonJavaResources(JavaProjectElementInfo.java, Compiled Code) at org.eclipse.jdt.internal.core.JavaProjectElementInfo.getNonJavaResources(JavaProjectElementInfo.java:141) at org.eclipse.jdt.internal.core.JavaProject.getNonJavaResources(JavaProject.java:561) at org.eclipse.jdt.ui.JavaElementContentProvider.getNonProjectPackageFragmentRoots(JavaElementContentProvider.java, Compiled Code) at org.eclipse.jdt.ui.JavaElementContentProvider.getChildren(JavaElementContentProvider.java, Compiled Code) at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java, Compiled Code) at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java, Compiled Code) at org.eclipse.jface.viewers.StructuredViewer.getSortedChildren(StructuredViewer.java, Compiled Code) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java, Compiled Code) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java, Compiled Code) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java, Compiled Code) at org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java, Compiled Code) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java, Compiled Code) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java, Compiled Code) at org.eclipse.jdt.ui.JavaElementContentProvider$2.run(JavaElementContentProvider.java:279) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java, Compiled Code) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java, Compiled Code) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java, Compiled Code) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java, Compiled Code) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java, Compiled Code) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:267) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:337) at org.eclipse.ui.actions.WorkspaceAction.run(WorkspaceAction.java:297) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:421) at org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent(ActionContributionItem.java, Compiled Code) at org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent(ActionContributionItem.java, Compiled Code) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java, Compiled Code) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java, Compiled Code) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java, Compiled Code) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java, Compiled Code) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java, Compiled Code) at org.eclipse.ui.internal.Workbench.run(Workbench.java:691) at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:850) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:280) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:67) at org.eclipse.core.launcher.Main.run(Main.java:299) at org.eclipse.core.launcher.UIMain.main(UIMain.java:43) Monitor Cache Dump: java.lang.ref.ReferenceQueue$Lock@20106D0/2614908: <unowned> Waiting to be notified: "Finalizer" (0xa0c18a8) java.lang.ref.Reference$Lock@20104A8/26143B8: <unowned> Waiting to be notified: "Reference Handler" (0xa08cd00) org.eclipse.jdt.internal.core.JavaModelManager@23BAA20/2938418: owner "main" (0x2f3b28) 1 entry Waiting to enter: "BusyCursorRunnableContext-Thread" (0x1150dbc8) java.lang.Object@1F64150/6647570: <unowned> Waiting to be notified: "org.eclipse.jdt.internal.ui.text.JavaReconciler" (0xcf18ca0) org.eclipse.ui.actions.WorkspaceAction$1@1FFA758/5FF9490: owner "ModalContext" (0x114f1a60) 1 entry org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext$ThreadContext@1ECD460/647CCC8: <unowned> Waiting to be notified: "main" (0x2f3b28) java.lang.Object@1F1F950/68EF348: <unowned> Waiting to be notified: "org.eclipse.jdt.internal.ui.text.JavaReconciler" (0xcf0e868) java.lang.Object@1EAF468/6D15898: <unowned> Waiting to be notified: "org.eclipse.jdt.internal.ui.text.JavaReconciler" (0xcf5d498) java.lang.Object@22C20A8/5BF9300: <unowned> Waiting to be notified: "org.eclipse.jdt.internal.ui.text.JavaReconciler" (0xceaed50) org.eclipse.swt.widgets.RunnableLock@1F5DDA0/61F8248: owner "main" (0x2f3b28) 1 entry org.eclipse.ui.internal.Semaphore@1ECD288/6475AF0: <unowned> Waiting to be notified: "ModalContext" (0x114f1a60) SymantecJITCompilationThread@2015578/263B1A0: <unowned> Waiting to be notified: "SymcJIT-LazyCompilation-PA" (0xa16b4a0) Registered Monitor Dump: SymcJIT Method Monitor: <unowned> SymcJIT Method Monitor: <unowned> SymcJIT Lazy Queue Lock: <unowned> Waiting to be notified: "SymcJIT-LazyCompilation-0" (0xa9ffc68) SymcJIT Method Monitor: <unowned> SymcJIT Method List Monitor: <unowned> SymcJIT Lock: <unowned> utf8 hash table: <unowned> JNI pinning lock: <unowned> JNI global reference lock: <unowned> BinClass lock: <unowned> Class linking lock: <unowned> System class loader lock: <unowned> Code rewrite lock: <unowned> Heap lock: <unowned> Monitor cache lock: owner "Signal dispatcher" (0xa0a6370) 1 entry Thread queue lock: owner "Signal dispatcher" (0xa0a6370) 1 entry Monitor registry: owner "Signal dispatcher" (0xa0a6370) 1 entry NOTES:
PRODUCT VERSION: 107
This problem was due to the fact deltas were notified during jar root opening (when source was attached). Deltas got disabled a long time ago. Closing.