Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 311559 - StackOverflowError while unloading resource
Summary: StackOverflowError while unloading resource
Status: CLOSED FIXED
Alias: None
Product: MoDisco
Classification: Modeling
Component: Infrastructure (show other bugs)
Version: 0.8.0   Edit
Hardware: All All
: P2 normal (vote)
Target Milestone: 0.8.0   Edit
Assignee: Nicolas Bros CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-04 10:24 EDT by Nicolas Bros CLA
Modified: 2010-10-01 13:35 EDT (History)
3 users (show)

See Also:


Attachments
projects to import (56.89 KB, application/x-zip-compressed)
2010-05-04 10:26 EDT, Nicolas Bros CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nicolas Bros CLA 2010-05-04 10:24:56 EDT
- Import the 2 attached projects
- Restart Eclipse
- Do Project > Clean
- Delete QueryGetJUnit3TestCases.java, QueryGetJUnit3Tests.java and QueryGetMethodsToTest.java (all at once)

You get a StackOverflowError. Here is a snapshot taken with the debugger (to have the bottom of the stack):

Thread [Worker-12] (Suspended (breakpoint at line 220 in EcoreUtil))	
	EcoreUtil.resolve(EObject, ResourceSet) line: 220	
	EcoreUtil.resolve(EObject, EObject) line: 267	
	FacetSetImpl(BasicEObjectImpl).eResolveProxy(InternalEObject) line: 1483	
	EPackageImpl$2(EcoreEList<E>).resolveProxy(EObject) line: 212	
	EPackageImpl$2(EcoreEList<E>).resolve(int, EObject) line: 167	
	EPackageImpl$2(EObjectContainmentWithInverseEList$Resolving<E>).resolve(int, E) line: 111	
	EPackageImpl$2(BasicEList<E>).get(int) line: 354	
	AbstractEList$EIterator<E1>.doNext() line: 709	
	AbstractEList$EIterator<E1>.next() line: 696	
	FacetSetImpl(EPackageImpl).getEClassifierGen(String) line: 447	
	FacetSetImpl(EPackageImpl).eObjectForURIFragmentSegment(String) line: 1829	
	EcoreResourceFactoryImpl$1(ResourceImpl).getEObject(List<String>) line: 782	
	EcoreResourceFactoryImpl$1(ResourceImpl).getEObject(String) line: 758	
	EcoreUtil.resolve(EObject, ResourceSet) line: 222	
	EcoreUtil.resolve(EObject, EObject) line: 267	
	FacetSetImpl(BasicEObjectImpl).eResolveProxy(InternalEObject) line: 1483	
	EPackageImpl$2(EcoreEList<E>).resolveProxy(EObject) line: 212	
	EPackageImpl$2(EcoreEList<E>).resolve(int, EObject) line: 167	
	EPackageImpl$2(EObjectContainmentWithInverseEList$Resolving<E>).resolve(int, E) line: 111	
	EPackageImpl$2(BasicEList<E>).get(int) line: 354	
	AbstractEList$EIterator<E1>.doNext() line: 709	
	AbstractEList$EIterator<E1>.next() line: 696	
	FacetSetImpl(EPackageImpl).getEClassifierGen(String) line: 447	
	FacetSetImpl(EPackageImpl).eObjectForURIFragmentSegment(String) line: 1829	
	EcoreResourceFactoryImpl$1(ResourceImpl).getEObject(List<String>) line: 782	
	EcoreResourceFactoryImpl$1(ResourceImpl).getEObject(String) line: 758	
	EcoreUtil.resolve(EObject, ResourceSet) line: 222	
	EcoreUtil.resolve(EObject, EObject) line: 267	
	FacetSetImpl(BasicEObjectImpl).eResolveProxy(InternalEObject) line: 1483	
	EPackageImpl$2(EcoreEList<E>).resolveProxy(EObject) line: 212	
	EPackageImpl$2(EcoreEList<E>).resolve(int, EObject) line: 167	
	EPackageImpl$2(EObjectContainmentWithInverseEList$Resolving<E>).resolve(int, E) line: 111	
	EPackageImpl$2(BasicEList<E>).get(int) line: 354	
	AbstractEList$EIterator<E1>.doNext() line: 709	
	AbstractEList$EIterator<E1>.next() line: 696	
	FacetSetImpl(EPackageImpl).getEClassifierGen(String) line: 447	
	FacetSetImpl(EPackageImpl).eObjectForURIFragmentSegment(String) line: 1829	
	EcoreResourceFactoryImpl$1(ResourceImpl).getEObject(List<String>) line: 782	
	EcoreResourceFactoryImpl$1(ResourceImpl).getEObject(String) line: 758	
	EcoreUtil.resolve(EObject, ResourceSet) line: 222	
	EcoreUtil.resolve(EObject, EObject) line: 267	
	FacetSetImpl(BasicEObjectImpl).eResolveProxy(InternalEObject) line: 1483	
	EPackageImpl$2(EcoreEList<E>).resolveProxy(EObject) line: 212	
	EPackageImpl$2(EcoreEList<E>).resolve(int, EObject) line: 167	
	EPackageImpl$2(EObjectContainmentWithInverseEList$Resolving<E>).resolve(int, E) line: 111	
	EPackageImpl$2(BasicEList<E>).get(int) line: 354	
	AbstractEList$EIterator<E1>.doNext() line: 709	
	AbstractEList$EIterator<E1>.next() line: 696	
	FacetSetImpl(EPackageImpl).getEClassifierGen(String) line: 447	
	FacetSetImpl(EPackageImpl).eObjectForURIFragmentSegment(String) line: 1829	
	EcoreResourceFactoryImpl$1(ResourceImpl).getEObject(List<String>) line: 782	
	EcoreResourceFactoryImpl$1(ResourceImpl).getEObject(String) line: 758	
	EcoreUtil.resolve(EObject, ResourceSet) line: 222	
	EcoreUtil.resolve(EObject, EObject) line: 267	
	FacetSetImpl(BasicEObjectImpl).eResolveProxy(InternalEObject) line: 1483	
	EPackageImpl$2(EcoreEList<E>).resolveProxy(EObject) line: 212	
	EPackageImpl$2(EcoreEList<E>).resolve(int, EObject) line: 167	
	EPackageImpl$2(EObjectContainmentWithInverseEList$Resolving<E>).resolve(int, E) line: 111	
	EPackageImpl$2(BasicEList<E>).get(int) line: 354	
	AbstractEList$EIterator<E1>.doNext() line: 709	
	AbstractEList$EIterator<E1>.next() line: 696	
	FacetSetImpl(EPackageImpl).getEClassifierGen(String) line: 447	
	FacetSetImpl(EPackageImpl).eObjectForURIFragmentSegment(String) line: 1829	
	EcoreResourceFactoryImpl$1(ResourceImpl).getEObject(List<String>) line: 782	
	EcoreResourceFactoryImpl$1(ResourceImpl).getEObject(String) line: 758	
	EcoreUtil.resolve(EObject, ResourceSet) line: 222	
	EcoreUtil.resolve(EObject, EObject) line: 267	
	FacetSetImpl(BasicEObjectImpl).eResolveProxy(InternalEObject) line: 1483	
	EPackageImpl$2(EcoreEList<E>).resolveProxy(EObject) line: 212	
	EPackageImpl$2(EcoreEList<E>).resolve(int, EObject) line: 167	
	EPackageImpl$2(EObjectContainmentWithInverseEList$Resolving<E>).resolve(int, E) line: 111	
	EPackageImpl$2(BasicEList<E>).get(int) line: 354	
	AbstractEList$EIterator<E1>.doNext() line: 709	
	AbstractEList$EIterator<E1>.next() line: 696	
	FacetSetImpl(EPackageImpl).getEClassifierGen(String) line: 447	
	FacetSetImpl(EPackageImpl).eObjectForURIFragmentSegment(String) line: 1829	
	EcoreResourceFactoryImpl$1(ResourceImpl).getEObject(List<String>) line: 782	
	EcoreResourceFactoryImpl$1(ResourceImpl).getEObject(String) line: 758	
	EcoreUtil.resolve(EObject, ResourceSet) line: 222	
	EcoreUtil.resolve(EObject, EObject) line: 267	
	FacetSetImpl(BasicEObjectImpl).eResolveProxy(InternalEObject) line: 1483	
	EPackageImpl$2(EcoreEList<E>).resolveProxy(EObject) line: 212	
	EPackageImpl$2(EcoreEList<E>).resolve(int, EObject) line: 167	
	EPackageImpl$2(EObjectContainmentWithInverseEList$Resolving<E>).resolve(int, E) line: 111	
	EPackageImpl$2(BasicEList<E>).get(int) line: 354	
	AbstractEList$EIterator<E1>.doNext() line: 709	
	AbstractEList$EIterator<E1>.next() line: 696	
	FacetSetImpl(EPackageImpl).getEClassifierGen(String) line: 447	
	FacetSetImpl(EPackageImpl).eObjectForURIFragmentSegment(String) line: 1829	
	EcoreResourceFactoryImpl$1(ResourceImpl).getEObject(List<String>) line: 782	
	EcoreResourceFactoryImpl$1(ResourceImpl).getEObject(String) line: 758	
	EcoreUtil.resolve(EObject, ResourceSet) line: 222	
	EcoreUtil.resolve(EObject, EObject) line: 267	
	FacetSetImpl(BasicEObjectImpl).eResolveProxy(InternalEObject) line: 1483	
	EPackageImpl$2(EcoreEList<E>).resolveProxy(EObject) line: 212	
	EPackageImpl$2(EcoreEList<E>).resolve(int, EObject) line: 167	
	EPackageImpl$2(EObjectContainmentWithInverseEList$Resolving<E>).resolve(int, E) line: 111	
	EPackageImpl$2(BasicEList<E>).get(int) line: 354	
	ENamedElementImpl$1$1(EContentsEList$FeatureIteratorImpl<E>).hasNext() line: 441	
	FacetSetImpl(EModelElementImpl).eURIFragmentSegment(EStructuralFeature, EObject) line: 340	
	XMIResourceImpl(ResourceImpl).getURIFragment(EObject) line: 678	
	XMIResourceImpl(XMLResourceImpl).getURIFragment(EObject) line: 423	
	XMIResourceImpl(ResourceImpl).unloaded(InternalEObject) line: 1563	
	XMIResourceImpl(ResourceImpl).doUnload() line: 1624	
	XMIResourceImpl(XMLResourceImpl).doUnload() line: 506	
	XMIResourceImpl(ResourceImpl).unload() line: 1639	
	FacetSetCatalog(AbstractMoDiscoCatalog).removeWSFile(IFile, String) line: 546	
	AbstractMoDiscoCatalog$3.run() line: 659	
	CatalogJob.run(IProgressMonitor) line: 52	
	Worker.run() line: 54
Comment 1 Nicolas Bros CLA 2010-05-04 10:26:31 EDT
Created attachment 166958 [details]
projects to import
Comment 2 Nicolas Bros CLA 2010-05-04 11:48:17 EDT
Fixed in revision 2190.
This was due to FacetSets not being removed from the EPackage registry before unloading the resource, because the initial copy of the registry which is used to restore was not initialized correctly.
Comment 3 Hugo Bruneliere CLA 2010-10-01 13:35:33 EDT
Bug fixed.