Bug 465821 - [IDEA] Deadlock
Summary: [IDEA] Deadlock
Status: NEW
Alias: None
Product: Xtend
Classification: Tools
Component: Core (show other bugs)
Version: 2.9.0   Edit
Hardware: PC Mac OS X
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-04-29 10:29 EDT by Sven Efftinge CLA
Modified: 2015-04-30 10:31 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sven Efftinge CLA 2015-04-29 10:29:55 EDT
After a restart. Here are the two stacktraces:

Thread [AWT-EventQueue-0 14.1#IC-140.SNAPSHOT, eap:true] (Suspended)	
	owns: Object  (id=20801)	
	waiting for: Object  (id=640)	
	SynchronizedXtextResourceSet$1.retainAll(Collection<?>) line: 125	
	BaseXtextFile$2.compute() line: 123	
	PsiCachedValueImpl<T>.doCompute(P) line: 49	
	PsiCachedValueImpl<T>(CachedValueBase<T>).getValueWithLock(P) line: 200	
	PsiCachedValueImpl<T>.getValue() line: 38	
	CachedValuesManagerImpl.getCachedValue(D, Key<CachedValue<T>>, CachedValueProvider<T>, boolean) line: 83	
	CachedValuesManagerImpl(CachedValuesManager).getCachedValue(D, CachedValueProvider<T>) line: 118	
	XtendFileImpl(BaseXtextFile).doGetResource() line: 114	
	XtendFileImpl(BaseXtextFile).getResource() line: 107	
	JvmPsiClasses.xtend line: 60	
	XtendFileTreeNode.xtend line: 39	
	XtendFileTreeNode(AbstractPsiBasedNode<Value>).getChildren() line: 83	
	ProjectViewPane$ProjectViewPaneTreeStructure(AbstractTreeStructureBase).getChildElements(Object) line: 47	
	AbstractTreeUi$32.perform() line: 1624	
	AbstractTreeUi$32(TreeRunnable).run() line: 33	
	AbstractTreeUi.execute(Runnable) line: 1830	
	AbstractTreeUi.getChildrenFor(Object) line: 1621	
	AbstractTreeUi.loadElementsFromStructure(NodeDescriptor, LoadedChildren) line: 2205	
	AbstractTreeUi.updateNodeChildrenNow(DefaultMutableTreeNode, TreeUpdatePass, AbstractTreeUi$LoadedChildren, boolean, boolean, boolean) line: 1367	
	AbstractTreeUi.doUpdateChildren(DefaultMutableTreeNode, TreeUpdatePass, AbstractTreeUi$LoadedChildren, boolean, boolean, boolean, boolean, boolean) line: 1289	
	AbstractTreeUi.access$3100(AbstractTreeUi, DefaultMutableTreeNode, TreeUpdatePass, AbstractTreeUi$LoadedChildren, boolean, boolean, boolean, boolean, boolean) line: 62	
	AbstractTreeUi$26$1.perform() line: 1182	
	AbstractTreeUi$26$1(TreeRunnable).run() line: 33	
	AbstractTreeUi.execute(Runnable) line: 1830	
	AbstractTreeUi.access$2500(AbstractTreeUi, Runnable) line: 62	
	AbstractTreeUi$26.perform() line: 1179	
	AbstractTreeUi$26(TreeRunnable).run() line: 33	
	ExecutionCallback.doWhenExecuted(Runnable) line: 101	
	ActionCallback$Done(ActionCallback).doWhenDone(Runnable) line: 108	
	AbstractTreeUi.updateNodeChildren(DefaultMutableTreeNode, TreeUpdatePass, AbstractTreeUi$LoadedChildren, boolean, boolean, boolean, boolean, boolean) line: 1174	
	AbstractTreeUi.access$2100(AbstractTreeUi, DefaultMutableTreeNode, TreeUpdatePass, AbstractTreeUi$LoadedChildren, boolean, boolean, boolean, boolean, boolean) line: 62	
	AbstractTreeUi$52$3.perform() line: 3113	
	AbstractTreeUi$52$3(TreeRunnable).run() line: 33	
	ExecutionCallback.doWhenExecuted(Runnable) line: 101	
	AsyncResult<T>(ActionCallback).doWhenDone(Runnable) line: 108	
	AbstractTreeUi$52.consume(Boolean) line: 3073	
	AbstractTreeUi$52.consume(Object) line: 3018	
	AsyncResult$2.run() line: 98	
	ExecutionCallback.doWhenExecuted(Runnable) line: 101	
	AsyncResult<T>(ActionCallback).doWhenDone(Runnable) line: 108	
	AsyncResult<T>.doWhenDone(Consumer<T>) line: 95	
	AbstractTreeUi.processExistingNode(DefaultMutableTreeNode, NodeDescriptor, DefaultMutableTreeNode, MutualMap<Object,Integer>, TreeUpdatePass, boolean, boolean, LoadedChildren) line: 3018	
	AbstractTreeUi.access$5000(AbstractTreeUi, DefaultMutableTreeNode, NodeDescriptor, DefaultMutableTreeNode, MutualMap, TreeUpdatePass, boolean, boolean, AbstractTreeUi$LoadedChildren) line: 62	
	AbstractTreeUi$33$1.run() line: 1728	
	AbstractTreeUi$35.perform() line: 1818	
	AbstractTreeUi$35(TreeRunnable).run() line: 33	
	AbstractTreeUi.execute(Runnable) line: 1830	
	AbstractTreeUi.execute(ActiveRunnable) line: 1815	
	AbstractTreeUi.access$5300(AbstractTreeUi, ActiveRunnable) line: 62	
	AbstractTreeUi$34.perform() line: 1783	
	AbstractTreeUi$34(TreeRunnable).run() line: 33	
	AbstractTreeUi.executeYieldingRequest(Runnable, TreeUpdatePass) line: 2091	
	AbstractTreeUi.access$5900(AbstractTreeUi, Runnable, TreeUpdatePass) line: 62	
	AbstractTreeUi$38$1.perform() line: 1983	
	AbstractTreeUi$38$1(TreeRunnable).run() line: 33	
	AbstractProjectViewPSIPane$5(AbstractTreeBuilder).runOnYeildingDone(Runnable) line: 433	
	AbstractTreeUi.runOnYieldingDone(Runnable) line: 2186	
	AbstractTreeUi$38.perform() line: 1978	
	AbstractTreeUi$38(TreeRunnable).run() line: 33	
	AbstractTreeBuilder$1.process(Runnable) line: 53	
	AbstractTreeBuilder$1.process(Object) line: 50	
	TransferToEDTQueue<T>.processNext() line: 98	
	TransferToEDTQueue<T>.access$300(TransferToEDTQueue) line: 36	
	TransferToEDTQueue$1.run() line: 57	
	InvocationEvent.dispatch() line: 312	
	IdeEventQueue(EventQueue).dispatchEventImpl(AWTEvent, Object) line: 733	
	EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103	
	EventQueue$3.run() line: 694	
	EventQueue$3.run() line: 692	
	AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]	
	ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76	
	IdeEventQueue(EventQueue).dispatchEvent(AWTEvent) line: 703	
	IdeEventQueue.defaultDispatchEvent(AWTEvent) line: 734	
	IdeEventQueue._dispatchEvent(AWTEvent, boolean) line: 569	
	IdeEventQueue.dispatchEvent(AWTEvent) line: 382	
	EventDispatchThread.pumpOneEventForFilters(int) line: 242	
	EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161	
	EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150	
	EventDispatchThread.pumpEvents(int, Conditional) line: 146	
	EventDispatchThread.pumpEvents(Conditional) line: 138	
	EventDispatchThread.run() line: 91	


Daemon Thread [Icons] (Suspended)	
	owns: Object  (id=640)	
	waiting for: Object  (id=20801)	
	XtendFileImpl(BaseXtextFile).doGetResource() line: 114	
	XtendFileImpl(BaseXtextFile).getResourceDescription() line: 267	
	XtendFileImpl(BaseXtextFile).getExportedObjects() line: 312	
	PsiFileBasedResourceDescription.xtend line: 23	
	PsiFileBasedResourceDescription(AbstractResourceDescription).getLookUp() line: 57	
	PsiFileBasedResourceDescription(AbstractResourceDescription).getExportedObjects(EClass, QualifiedName, boolean) line: 50	
	LocalResourceFilteringTypeScope.isFiltered(QualifiedName) line: 46	
	LocalResourceFilteringTypeScope.getSingleElement(QualifiedName) line: 39	
	RecordingTypeScope.getSingleElement(QualifiedName) line: 41	
	SelectableBasedScope(AbstractScope).getSingleElement(QualifiedName) line: 108	
	DefaultLinkingService.getLinkedObjects(EObject, EReference, INode) line: 121	
	BatchLinkableResource(LazyLinkingResource).getEObject(String, Triple<EObject,EReference,INode>) line: 250	
	BatchLinkableResource.getEObject(String) line: 119	
	SynchronizedXtextResourceSet(ResourceSetImpl).getEObject(URI, boolean) line: 223	
	EcoreUtil.resolve(EObject, ResourceSet) line: 199	
	EcoreUtil.resolve(EObject, EObject) line: 259	
	XImportDeclarationImplCustom(BasicEObjectImpl).eResolveProxy(InternalEObject) line: 1473	
	XImportDeclarationImplCustom(XImportDeclarationImpl).getImportedType() line: 253	
	XbaseBatchScopeProvider$1.doAddImports(ITypeImporter) line: 128	
	TypeImporter.process(AbstractFeatureScopeSession, ITypeImporter$Client) line: 36	
	FeatureScopeSessionWithStaticTypes(AbstractFeatureScopeSession).addImports(ITypeImporter$Client) line: 69	
	XbaseWithAnnotationsBatchScopeProvider(XbaseBatchScopeProvider).newSession(Resource) line: 119	
	XtendReentrantTypeResolver(DefaultReentrantTypeResolver).resolve(CancelIndicator) line: 164	
	XtendReentrantTypeResolver(DefaultReentrantTypeResolver).reentrantResolve(CancelIndicator) line: 140	
	CompoundReentrantTypeResolver.reentrantResolve(CancelIndicator) line: 79	
	CachingBatchTypeResolver$LazyResolvedTypes.resolveTypes(CancelIndicator) line: 80	
	CachingBatchTypeResolver$2.process(Resource) line: 57	
	CachingBatchTypeResolver$2.process(Object) line: 1	
	CachingBatchTypeResolver$2(IUnitOfWork$Void<T>).exec(T) line: 37	
	OnChangeEvictingCache.execWithoutCacheClear(Param, IUnitOfWork<Result,Param>) line: 129	
	CachingBatchTypeResolver.doResolveTypes(EObject, CancelIndicator) line: 53	
	CachingBatchTypeResolver(AbstractBatchTypeResolver).resolveTypes(EObject, CancelIndicator) line: 69	
	CachingBatchTypeResolver(AbstractBatchTypeResolver).resolveTypes(EObject) line: 55	
	InferredTypeIndicator.getTypeReference(XComputedTypeReferenceImplCustom) line: 71	
	XComputedTypeReferenceImplCustom.getEquivalent() line: 46	
	JvmPsiClassImpl.xtend line: 278	
	JvmPsiClassImpl.xtend line: 272	
	JvmPsiClassImpl.xtend line: 179	
	JvmPsiClassImpl.xtend line: 2	
	ObjectExtensions.operator_doubleArrow(T, Procedure1<? super T>) line: 139	
	JvmPsiClassImpl.xtend line: 165	
	JvmPsiClassImpl.xtend line: 2	
	FunctionDelegate<P,R>.apply(P) line: 42	
	Iterators$8.transform(F) line: 794	
	Iterators$8(TransformedIterator<F,T>).next() line: 48	
	Iterators.addAll(Collection<T>, Iterator<? extends T>) line: 357	
	Lists.newArrayList(Iterator<? extends E>) line: 147	
	Lists.newArrayList(Iterable<? extends E>) line: 129	
	IterableExtensions.toList(Iterable<T>) line: 555	
	JvmPsiClassImpl.xtend line: 164	
	ClassInnerStuffCache.getAllMethods() line: 175	
	ClassInnerStuffCache.access$300(ClassInnerStuffCache) line: 38	
	ClassInnerStuffCache$3.compute() line: 75	
	CachedValuesManager$1.compute() line: 131	
	PsiCachedValueImpl<T>.doCompute(P) line: 49	
	PsiCachedValueImpl<T>(CachedValueBase<T>).getValueWithLock(P) line: 200	
	PsiCachedValueImpl<T>.getValue() line: 38	
	CachedValuesManagerImpl.getCachedValue(D, Key<CachedValue<T>>, CachedValueProvider<T>, boolean) line: 83	
	CachedValuesManager.getCachedValue(PsiElement, CachedValueProvider<T>) line: 127	
	ClassInnerStuffCache.getMethods() line: 71	
	JvmPsiClassImpl.xtend line: 142	
	PsiClassImplUtil.findByMap(PsiClass, String, boolean, MemberType) line: 168	
	PsiClassImplUtil.findMethodsByName(PsiClass, String, boolean) line: 93	
	JvmPsiClassImpl.xtend line: 482	
	JUnitUtil.findSuiteMethod(PsiClass) line: 252	
	JUnit3Framework.isTestClass(PsiClass, boolean) line: 75	
	JUnit3Framework(JavaTestFramework).isTestClass(PsiElement) line: 44	
	TestFrameworksImpl.isTestClass(PsiClass) line: 38	
	ElementPresentationUtil.getClassKindImpl(PsiClass) line: 140	
	ElementPresentationUtil.access$000(PsiClass) line: 36	
	ElementPresentationUtil$1.compute() line: 107	
	PsiCachedValueImpl<T>.doCompute(P) line: 49	
	PsiCachedValueImpl<T>(CachedValueBase<T>).getValueWithLock(P) line: 200	
	PsiCachedValueImpl<T>.getValue() line: 38	
	ElementPresentationUtil.getClassKind(PsiClass) line: 112	
	PsiClassImplUtil$1.fun(PsiClassImplUtil$ClassIconRequest) line: 267	
	PsiClassImplUtil$1.fun(Object) line: 261	
	IconDeferrerImpl.deferImpl(Icon, T, Function<T,Icon>, boolean) line: 87	
	IconDeferrerImpl.defer(Icon, T, Function<T,Icon>) line: 77	
	PsiClassImplUtil.getClassIcon(int, PsiClass, Icon) line: 289	
	PsiClassImplUtil.getClassIcon(int, PsiClass) line: 276	
	JvmPsiClassImpl.xtend line: 458	
	ElementBase.computeIconNow(PsiElement, int) line: 136	
	ElementBase.access$000(PsiElement, int) line: 52	
	ElementBase$1.fun(ElementBase$ElementIconRequest) line: 62	
	ElementBase$1.fun(Object) line: 56	
	DeferredIconImpl$1$1$1$1.run() line: 122	
	IconDeferrerImpl.evaluateDeferred(Runnable) line: 122	
	DeferredIconImpl$1$1$1.run() line: 118	
	ApplicationImpl.tryRunReadAction(Runnable) line: 1104	
	DeferredIconImpl$1$1.run() line: 115	
	ProgressIndicatorUtils$4.run() line: 107	
	CoreProgressManager$2.run() line: 152	
	CoreProgressManager.registerIndicatorAndRun(ProgressIndicator, Thread, ProgressIndicator, Runnable) line: 452	
	ProgressManagerImpl(CoreProgressManager).executeProcessUnderProgress(Runnable, ProgressIndicator) line: 402	
	ProgressManagerImpl.executeProcessUnderProgress(Runnable, ProgressIndicator) line: 54	
	ProgressManagerImpl(CoreProgressManager).runProcess(Runnable, ProgressIndicator) line: 137	
	ProgressIndicatorUtils.runWithWriteActionPriority(Runnable, ProgressIndicator) line: 103	
	ProgressIndicatorUtils.runWithWriteActionPriority(Runnable) line: 68	
	DeferredIconImpl$1.run() line: 112	
	Executors$RunnableAdapter<T>.call() line: 471	
	FutureTask<V>.run() line: 262	
	ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1145	
	ThreadPoolExecutor$Worker.run() line: 615	
	Thread.run() line: 745
Comment 1 Anton Kosyakov CLA 2015-04-30 10:31:13 EDT
Should not be a case anymore, see: https://github.com/eclipse/xtext/commit/17de97d7a14bd3008004c205e065b280eecdbefd