[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.modeling.gmf] Re: StackOverflow Problem

Hi, Joel,

The warning that you are seeing comes from the TransactionalEditingDomain used by your GMF-based editor. It indicates that something in your diagram is causing a resource to be re-loaded while it is in the process of unloading. I suspect that this is happening repeatedly (in an unbounded loop) in your case.

The first report of this was in the GMF newsgroup quite some time ago (early in the 2.1 release development, I think). You can search there for a thread about a diagram editor that, when closing, would unload its resource but then some leaking edit-part listeners or something would fire and cause proxies (just created by the unload) to resolve and load the same resource again before it finished unloading.

HTH,

Christian


Joel Greenyer wrote:
Hi,
I'm experiencing a StackOverflowError when I close my diagram editor. This happens with some models, but not with all, however, I don't see the pattern yet.


java.lang.StackOverflowError
at org.eclipse.emf.ecore.resource.impl.URIMappingRegistryImpl.getURI(URIMappingRegistryImpl.java:105)


at org.eclipse.emf.ecore.resource.impl.URIMappingRegistryImpl$URIMapImpl.getURI(URIMappingRegistryImpl.java:168)

at org.eclipse.emf.ecore.resource.impl.ExtensibleURIConverterImpl.normalize(ExtensibleURIConverterImpl.java:351)

at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:361)

at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getEObject(ResourceSetImpl.java:216)

at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:202)
at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:262)
at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eResolveProxy(BasicEObjectImpl.java:1470)


at org.eclipse.emf.ecore.util.EcoreEList.resolveProxy(EcoreEList.java:212)
at org.eclipse.emf.ecore.util.EcoreEList.resolve(EcoreEList.java:167)
at org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList$Resolving.resolve(EObjectContainmentWithInverseEList.java:111)


at org.eclipse.emf.common.util.BasicEList.get(BasicEList.java:537)
at org.eclipse.emf.ecore.util.EContentsEList$FeatureIteratorImpl.hasNext(EContentsEList.java:441)


at org.eclipse.emf.ecore.util.EContentsEList$FeatureIteratorImpl.next(EContentsEList.java:561)

at org.eclipse.emf.ecore.impl.EModelElementImpl.eObjectForURIFragmentSegment(EModelElementImpl.java:449)

at org.eclipse.emf.ecore.resource.impl.ResourceImpl.getEObject(ResourceImpl.java:775)

at org.eclipse.emf.ecore.resource.impl.ResourceImpl.getEObject(ResourceImpl.java:751)

at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getEObject(ResourceSetImpl.java:219)

at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:202)
at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:262)
at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eResolveProxy(BasicEObjectImpl.java:1470)


at org.eclipse.emf.ecore.util.EcoreEList.resolveProxy(EcoreEList.java:212)
at org.eclipse.emf.ecore.util.EcoreEList.resolve(EcoreEList.java:167)
at org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList$Resolving.resolve(EObjectContainmentWithInverseEList.java:111)


    at org.eclipse.emf.common.util.BasicEList.get(BasicEList.java:537)
    ...


When I don't get the StackOverflow, I see warnings as follows, could this be related?
"Resource was re-loaded while it was being unloaded, probably because of unintentional proxy resolution: platform:/resource/..."


The diagram editor is an editor for "meta-rules", thus a lot of other packages are referenced from within the model, also ecore. Could that be part of the problem?

Any ideas?

Joel