Community
Participate
Working Groups
I happened to run Eclipse in the debugger when this deadlock occurred. The only custom code that I could find in the involved stacks is from Jan's GraphView. From briefly looking around I had the impression that "Worker-2" was trying to analyse a resource foo.gvstyle, while "main" was initializing a graph view. Sorry, didn't have more time to collect info. I do have a few tiny changes in GraphView, but I don't believe these are involved in the stack, just mentioning in case line numbers don't match, feel free to ask if you suspect anything there. Here're the deadly embracing threads: Thread [main] (Suspended) owns: XbaseResource (id=161) owns: Class<T> (com.google.inject.internal.InternalInjectorCreator) (id=162) waiting for: ResourceServiceProviderDescriptor (id=160) ResourceServiceProviderDescriptor.get() line: 38 ResourceServiceProviderDescriptor.get() line: 1 ResourceServiceProviderRegistryImpl$InternalData.getServiceProvider(URI, String) line: 40 ResourceServiceProviderRegistryImpl.getResourceServiceProvider(URI, String) line: 75 ResourceServiceProviderRegistryImpl.getResourceServiceProvider(URI) line: 91 UriValidator.isValid(URI, IStorage) line: 27 Storage2UriMapperJavaImpl(Storage2UriMapperImpl).isValidUri(URI, IStorage) line: 97 Storage2UriMapperJavaImpl(Storage2UriMapperImpl).getUri(IStorage) line: 81 JavaProjectsStateHelper(AbstractStorage2UriMapperClient).getUri(IStorage) line: 27 JavaProjectsStateHelper$2.visit(IResource) line: 107 Resource$2.visit(IResourceProxy) line: 126 Resource$1.visitElement(ElementTree, IPathRequestor, Object) line: 85 ElementTreeIterator.doIteration(DataTreeNode, IElementContentVisitor) line: 82 ElementTreeIterator.doIteration(DataTreeNode, IElementContentVisitor) line: 86 ElementTreeIterator.iterate(IElementContentVisitor) line: 127 Folder(Resource).accept(IResourceProxyVisitor, int, int) line: 95 Folder(Resource).accept(IResourceProxyVisitor, int) line: 52 Folder(Resource).accept(IResourceVisitor, int, int) line: 124 Folder(Resource).accept(IResourceVisitor) line: 108 JavaProjectsStateHelper.initContainedURIs(String) line: 104 JavaProjectsState.doInitContainedURIs(String) line: 32 JavaProjectsState(AbstractAllContainersState).initContainedURIs(String, Collection<URI>) line: 147 JavaProjectsState(AbstractAllContainersState).isEmpty(String) line: 143 ContainerState.isEmpty() line: 32 StateBasedContainer.isEmpty() line: 72 StateBasedContainerManager.getVisibleContainers(List<String>, IResourceDescriptions) line: 88 StateBasedContainerManager.getVisibleContainers(IResourceDescription, IResourceDescriptions) line: 55 TypesAwareDefaultGlobalScopeProvider(DefaultGlobalScopeProvider).getVisibleContainers(Resource) line: 72 TypesAwareDefaultGlobalScopeProvider(DefaultGlobalScopeProvider).getScope(IScope, Resource, boolean, EClass, Predicate<IEObjectDescription>) line: 49 TypesAwareDefaultGlobalScopeProvider(DefaultGlobalScopeProvider).getScope(Resource, boolean, EClass, Predicate<IEObjectDescription>) line: 61 TypesAwareDefaultGlobalScopeProvider(AbstractGlobalScopeProvider).getScope(Resource, EReference, Predicate<IEObjectDescription>) line: 48 TypesAwareDefaultGlobalScopeProvider.getScope(Resource, EReference, Predicate<IEObjectDescription>) line: 41 XbaseImportedNamespaceScopeProvider(AbstractGlobalScopeDelegatingScopeProvider).getGlobalScope(Resource, EReference, Predicate<IEObjectDescription>) line: 46 XbaseImportedNamespaceScopeProvider(AbstractGlobalScopeDelegatingScopeProvider).getGlobalScope(Resource, EReference) line: 42 XbaseImportedNamespaceScopeProvider(ImportedNamespaceAwareLocalScopeProvider).getResourceScope(Resource, EReference) line: 96 XbaseImportedNamespaceScopeProvider(ImportedNamespaceAwareLocalScopeProvider).getScope(EObject, EReference) line: 89 GraphViewStyleScopeProvider(XtypeScopeProvider).getScope(EObject, EReference) line: 33 GraphViewStyleScopeProvider(XbaseScopeProvider).getScope(EObject, EReference) line: 187 XbaseLinkingScopeProvider.getScope(EObject, EReference) line: 42 DefaultLinkingService.getScope(EObject, EReference) line: 59 DefaultLinkingService.getLinkedObjects(EObject, EReference, INode) line: 119 XbaseResource(LazyLinkingResource).getEObject(String) line: 179 XbaseResource.access$0(XbaseResource, String) line: 1 XbaseResource$2.exec(XbaseResource) line: 239 XbaseResource$2.exec(Object) line: 1 OnChangeEvictingCache.execWithoutCacheClear(Param, IUnitOfWork<Result,Param>) line: 124 XbaseResource.getEObject(String) line: 237 XtextResourceSet(ResourceSetImpl).getEObject(URI, boolean) line: 223 EcoreUtil.resolve(EObject, ResourceSet) line: 197 EcoreUtil.resolve(EObject, EObject) line: 257 StyleSheetImpl(BasicEObjectImpl).eResolveProxy(InternalEObject) line: 1473 StyleSheetImpl.getDiagramMapping() line: 164 StyleSheetImpl.eGet(int, boolean, boolean) line: 244 StyleSheetImpl(BasicEObjectImpl).eGet(EStructuralFeature, boolean, boolean) line: 1011 StyleSheetImpl(BasicEObjectImpl).eGet(EStructuralFeature, boolean) line: 1003 ECrossReferenceEList$ResolvingFeatureIteratorImpl<E>(EContentsEList$FeatureIteratorImpl<E>).hasNext() line: 403 EcoreUtil.resolveCrossReferences(EObject) line: 302 EcoreUtil.resolveAll(EObject) line: 292 DefaultDiagramConfigurationProvider.loadDefaultsIfNecessary() line: 137 DefaultDiagramConfigurationProvider.getStyleSheet() line: 129 StyleProvider.loadStyles(IDiagramConfigurationProvider) line: 45 StyleProvider.setGraphViewDefinitionProvider(IDiagramConfigurationProvider) line: 40 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 SingleMethodInjector$1.invoke(Object, Object...) line: 71 SingleMethodInjector.inject(Errors, InternalContext, Object) line: 90 MembersInjectorImpl<T>.injectMembers(T, Errors, InternalContext, boolean) line: 110 ConstructorInjector<T>.construct(Errors, InternalContext, Class<?>, boolean) line: 94 ConstructorBindingImpl$Factory<T>.get(Errors, InternalContext, Dependency<?>, boolean) line: 254 ProviderToInternalFactoryAdapter$1.call(InternalContext) line: 46 InjectorImpl.callInContext(ContextualCallable<T>) line: 1031 ProviderToInternalFactoryAdapter<T>.get() line: 40 Scopes$1$1.get() line: 65 InternalFactoryToProviderAdapter<T>.get(Errors, InternalContext, Dependency<?>, boolean) line: 40 SingleFieldInjector.inject(Errors, InternalContext, Object) line: 53 MembersInjectorImpl<T>.injectMembers(T, Errors, InternalContext, boolean) line: 110 ConstructorInjector<T>.construct(Errors, InternalContext, Class<?>, boolean) line: 94 ConstructorBindingImpl$Factory<T>.get(Errors, InternalContext, Dependency<?>, boolean) line: 254 SingleFieldInjector.inject(Errors, InternalContext, Object) line: 53 MembersInjectorImpl<T>.injectMembers(T, Errors, InternalContext, boolean) line: 110 ConstructorInjector<T>.construct(Errors, InternalContext, Class<?>, boolean) line: 94 ConstructorBindingImpl$Factory<T>.get(Errors, InternalContext, Dependency<?>, boolean) line: 254 InjectorImpl$4$1.call(InternalContext) line: 978 InjectorImpl.callInContext(ContextualCallable<T>) line: 1024 InjectorImpl$4.get() line: 974 GraphViewEditPartFactory$1.caseDiagramInstance(DiagramInstance) line: 53 GraphViewEditPartFactory$1.caseDiagramInstance(DiagramInstance) line: 1 GraphViewEditPartFactory$1(InstancemodelSwitch<T>).doSwitch(int, EObject) line: 103 GraphViewEditPartFactory$1(InstancemodelSwitch<T>).doSwitch(EClass, EObject) line: 75 GraphViewEditPartFactory$1(InstancemodelSwitch<T>).doSwitch(EObject) line: 63 GraphViewEditPartFactory.createEditPart(EditPart, Object) line: 67 GestureGraphicalViewer(AbstractEditPartViewer).setContents(Object) line: 626 GraphView.setViewerContents(Object, ClassLoader, boolean) line: 225 XtextEditorSelectionStrategy$1.exec(XtextResource) line: 60 XtextEditorSelectionStrategy$1.exec(Object) line: 1 XtextDocument$XtextDocumentLocker(AbstractReadWriteAcces<P>).readOnly(IUnitOfWork<T,P>) line: 32 XtextDocument.readOnly(IUnitOfWork<T,XtextResource>) line: 78 XtextEditorSelectionStrategy.editorSelectionChanged(ISelection, boolean) line: 56 ElementSelectionConverter.selectionChanged(IWorkbenchPart, ISelection) line: 84 SelectionService.notifyPostSelectionListeners(String, IWorkbenchPart, ISelection) line: 173 SelectionService.updateSelection(IWorkbenchPart) line: 120 WorkbenchPage$E4PartListener.partActivated(MPart) line: 170 PartServiceImpl$2.run() line: 193 SafeRunner.run(ISafeRunnable) line: 42 PartServiceImpl.firePartActivated(MPart) line: 191 PartServiceImpl.activate(MPart, boolean, boolean) line: 596 PartServiceImpl.switchPerspective(MPerspective) line: 515 PerspectiveStackRenderer.showTab(MUIElement) line: 124 PerspectiveStackRenderer(LazyStackRenderer).postProcess(MUIElement) line: 98 PerspectiveStackRenderer.postProcess(MUIElement) line: 77 PartRenderingEngine.safeCreateGui(MUIElement, Object, IEclipseContext) line: 645 PartRenderingEngine.safeCreateGui(MUIElement) line: 731 PartRenderingEngine.access$2(PartRenderingEngine, MUIElement) line: 702 PartRenderingEngine$7.run() line: 696 SafeRunner.run(ISafeRunnable) line: 42 PartRenderingEngine.createGui(MUIElement) line: 681 SashRenderer(SWTPartRenderer).processContents(MElementContainer<MUIElement>) line: 59 PartRenderingEngine.safeCreateGui(MUIElement, Object, IEclipseContext) line: 641 PartRenderingEngine.safeCreateGui(MUIElement) line: 731 PartRenderingEngine.access$2(PartRenderingEngine, MUIElement) line: 702 PartRenderingEngine$7.run() line: 696 SafeRunner.run(ISafeRunnable) line: 42 PartRenderingEngine.createGui(MUIElement) line: 681 WBWRenderer(SWTPartRenderer).processContents(MElementContainer<MUIElement>) line: 59 WBWRenderer.processContents(MElementContainer<MUIElement>) line: 644 PartRenderingEngine.safeCreateGui(MUIElement, Object, IEclipseContext) line: 641 PartRenderingEngine.safeCreateGui(MUIElement) line: 731 PartRenderingEngine.access$2(PartRenderingEngine, MUIElement) line: 702 PartRenderingEngine$7.run() line: 696 SafeRunner.run(ISafeRunnable) line: 42 PartRenderingEngine.createGui(MUIElement) line: 681 PartRenderingEngine$9.run() line: 987 Realm.runWithDefault(Realm, Runnable) line: 332 PartRenderingEngine.run(MApplicationElement, IEclipseContext) line: 942 E4Workbench.createAndRunUI(MApplicationElement) line: 86 Workbench$5.run() line: 588 Realm.runWithDefault(Realm, Runnable) line: 332 Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 543 PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 149 IDEApplication.start(IApplicationContext) line: 124 EclipseAppHandle.run(Object) line: 196 EclipseAppLauncher.runApplication(Object) line: 110 EclipseAppLauncher.start(Object) line: 79 EclipseStarter.run(Object) line: 353 EclipseStarter.run(String[], Runnable) line: 180 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 Main.invokeFramework(String[], URL[]) line: 629 Main.basicRun(String[]) line: 584 Main.run(String[]) line: 1438 Main.main(String[]) line: 1414 Thread [Worker-2] (Suspended) owns: ResourceServiceProviderDescriptor (id=160) waiting for: Class<T> (com.google.inject.internal.InternalInjectorCreator) (id=162) Scopes$1$1.get() line: 63 InternalFactoryToProviderAdapter<T>.get(Errors, InternalContext, Dependency<?>, boolean) line: 40 SingleFieldInjector.inject(Errors, InternalContext, Object) line: 53 MembersInjectorImpl<T>.injectMembers(T, Errors, InternalContext, boolean) line: 110 ConstructorInjector<T>.construct(Errors, InternalContext, Class<?>, boolean) line: 94 ConstructorBindingImpl$Factory<T>.get(Errors, InternalContext, Dependency<?>, boolean) line: 254 InjectorImpl$3.get(Errors, InternalContext, Dependency<?>, boolean) line: 737 SingleFieldInjector.inject(Errors, InternalContext, Object) line: 53 MembersInjectorImpl<T>.injectMembers(T, Errors, InternalContext, boolean) line: 110 ConstructorInjector<T>.construct(Errors, InternalContext, Class<?>, boolean) line: 94 ConstructorBindingImpl$Factory<T>.get(Errors, InternalContext, Dependency<?>, boolean) line: 254 InjectorImpl$3.get(Errors, InternalContext, Dependency<?>, boolean) line: 737 SingleParameterInjector<T>.inject(Errors, InternalContext) line: 38 SingleParameterInjector<T>.getAll(Errors, InternalContext, SingleParameterInjector<?>[]) line: 62 ConstructorInjector<T>.construct(Errors, InternalContext, Class<?>, boolean) line: 84 ConstructorBindingImpl$Factory<T>.get(Errors, InternalContext, Dependency<?>, boolean) line: 254 InjectorImpl$3.get(Errors, InternalContext, Dependency<?>, boolean) line: 737 InjectorImpl$4$1.call(InternalContext) line: 978 InjectorImpl.callInContext(ContextualCallable<T>) line: 1024 InjectorImpl$4.get() line: 974 InjectorImpl.getInstance(Class<T>) line: 1013 GraphViewStyleExecutableExtensionFactory(AbstractGuiceAwareExecutableExtensionFactory).create() line: 50 ConfigurationElement.createExecutableExtension(String) line: 262 ConfigurationElementHandle.createExecutableExtension(String) line: 55 ResourceServiceProviderDescriptor.get() line: 40 ResourceServiceProviderDescriptor.get() line: 1 ResourceServiceProviderRegistryImpl$InternalData.getServiceProvider(URI, String) line: 40 ResourceServiceProviderRegistryImpl.getResourceServiceProvider(URI, String) line: 75 ResourceServiceProviderRegistryImpl.getResourceServiceProvider(URI) line: 91 UriValidator.isValid(URI, IStorage) line: 27 Storage2UriMapperJavaImpl(Storage2UriMapperImpl).isValidUri(URI, IStorage) line: 97 Storage2UriMapperJavaImpl(Storage2UriMapperImpl).getUri(IStorage) line: 81 JdtToBeBuiltComputer(ToBeBuiltComputer).getUri(IStorage) line: 154 JdtToBeBuiltComputer(ToBeBuiltComputer).updateStorage(IProgressMonitor, ToBeBuilt, IStorage) line: 121 ToBeBuiltComputer$2.visit(IResource) line: 107 Resource$2.visit(IResourceProxy) line: 126 Resource$1.visitElement(ElementTree, IPathRequestor, Object) line: 85 ElementTreeIterator.doIteration(DataTreeNode, IElementContentVisitor) line: 82 ElementTreeIterator.doIteration(DataTreeNode, IElementContentVisitor) line: 86 ElementTreeIterator.doIteration(DataTreeNode, IElementContentVisitor) line: 86 ElementTreeIterator.iterate(IElementContentVisitor) line: 127 Project(Resource).accept(IResourceProxyVisitor, int, int) line: 95 Project(Resource).accept(IResourceProxyVisitor, int) line: 52 Project(Resource).accept(IResourceVisitor, int, int) line: 124 Project(Resource).accept(IResourceVisitor) line: 108 JdtToBeBuiltComputer(ToBeBuiltComputer).updateProject(IProject, IProgressMonitor) line: 102 JdtToBeBuiltComputer.updateProject(IProject, IProgressMonitor) line: 84 XtextBuilder.fullBuild(IProgressMonitor, boolean) line: 187 XtextBuilder.build(int, Map, IProgressMonitor) line: 85 BuildManager$2.run() line: 726 SafeRunner.run(ISafeRunnable) line: 42 BuildManager.basicBuild(int, IncrementalProjectBuilder, Map<String,String>, MultiStatus, IProgressMonitor) line: 199 BuildManager.basicBuild(IBuildConfiguration, int, String, Map<String,String>, IProgressMonitor) line: 321 BuildManager.build(IBuildConfiguration, int, String, Map<String,String>, IProgressMonitor) line: 396 Project$1.run(IProgressMonitor) line: 618 Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor) line: 2344 Project.internalBuild(IBuildConfiguration, int, String, Map<String,String>, IProgressMonitor) line: 597 Project.build(int, String, Map<String,String>, IProgressMonitor) line: 124 BuildScheduler$BuildJob.run(IProgressMonitor) line: 178 Worker.run() line: 53