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

Hi Christian,
I've seen the thread you talk about and my feeling tells me you are right, as the loop I get involves the basic ecore stuff.
But what can I do to prevent that from happening, or at least identify where the problem lies?

Thanks for helping

Joel



Christian W. Damus wrote:
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