Usage of IListener/Adapter [message #1688325] |
Fri, 20 March 2015 13:37 |
Daniel Seybold Messages: 14 Registered: October 2014 |
Junior Member |
|
|
Hi guys,
I've got model resource with the following elemnts/structure.
Model foo is the parent with a list of childs bar:
foo (instance of A)
--bar (Instance of B)
--bar (Instance of B)
--bar (Instance of B)
...
I've got a open View and
now I'd like to get noticed if another element of bar is added to the foo root element on the CDOServer
I've already found in the docs that you should prefer Adapters over the IListener because you'll get more information by an Adapter.
But is it possible to get the changed/added element (or at least the Class of the Element) by the Notification of the Adapater?
Or do I have to go through the whole Notification and compare my local instance of the model with the instance of the model provided by the notification?
Thanks in advance for your help!
Cheers,
Daniel
[Updated on: Fri, 20 March 2015 13:37] Report message to a moderator
|
|
|
|
|
|
|
|
Re: Usage of IListener/Adapter [message #1690391 is a reply to message #1690324] |
Fri, 27 March 2015 05:38 |
|
Am 26.03.2015 um 16:30 schrieb Daniel Seybold:
> Hi Eike,
>
> this is the complete stack trace:
>
>
> [ERROR] Invalid URI "cdo:proxy": java.lang.IllegalStateException: Different object was registered for OID1
> org.eclipse.emf.cdo.util.InvalidURIException: Invalid URI "cdo:proxy": java.lang.IllegalStateException: Different
> object was registered for OID1
> at org.eclipse.emf.internal.cdo.view.AbstractCDOView.registerProxyResource(AbstractCDOView.java:1457)
> at org.eclipse.emf.cdo.eresource.impl.CDOResourceImpl.registerProxy(CDOResourceImpl.java:1180)
> at org.eclipse.emf.cdo.eresource.impl.CDOResourceImpl.load(CDOResourceImpl.java:1086)
> at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:259)
> at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:274)
> at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:406)
> at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getEObject(ResourceSetImpl.java:220)
> at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:199)
> at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:259)
> at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eResolveProxy(BasicEObjectImpl.java:1473)
> at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eContainer(BasicEObjectImpl.java:770)
> at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstanceFeature(CDOLegacyWrapper.java:678)
So you're using models that are not regenerated specifically for (native) use with CDO. Instead you fall back to CDO's
legacy model support. That should work in most cases (I haven't developed it) but often incurs performance or
scalability penalties. Have you tried to regenerate your model for CDO natively? Here's a how-to:
https://wiki.eclipse.org/CDO/Preparing_EMF_Models
It's possible that you problem goes away then or, if not, we know that it's not legacy mode related..
Cheers
/Eike
----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
> at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstance(CDOLegacyWrapper.java:492)
> at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.cdoInternalPostLoad(CDOLegacyWrapper.java:367)
> at org.eclipse.emf.internal.cdo.view.AbstractCDOView.cleanObject(AbstractCDOView.java:1254)
> at org.eclipse.emf.internal.cdo.view.AbstractCDOView.createObject(AbstractCDOView.java:1170)
> at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1055)
> at org.eclipse.emf.internal.cdo.view.AbstractCDOView.convertIDToObject(AbstractCDOView.java:1395)
> at org.eclipse.emf.internal.cdo.view.CDOStoreImpl.convertIDToObject(CDOStoreImpl.java:679)
> at org.eclipse.emf.internal.cdo.view.CDOStoreImpl.convertToEMF(CDOStoreImpl.java:647)
> at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.getValueFromRevision(CDOLegacyWrapper.java:761)
> at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstanceFeature(CDOLegacyWrapper.java:615)
> at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstance(CDOLegacyWrapper.java:492)
> at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.cdoInternalPostInvalidate(CDOLegacyWrapper.java:385)
> at org.eclipse.emf.internal.cdo.view.CDOStateMachine$InvalidateTransition.execute(CDOStateMachine.java:1156)
> at org.eclipse.emf.internal.cdo.view.CDOStateMachine$InvalidateTransition.execute(CDOStateMachine.java:1)
> at org.eclipse.net4j.util.fsm.FiniteStateMachine.process(FiniteStateMachine.java:173)
> at org.eclipse.emf.internal.cdo.view.CDOStateMachine.invalidate(CDOStateMachine.java:388)
> at org.eclipse.emf.internal.cdo.view.AbstractCDOView.invalidate(AbstractCDOView.java:1591)
> at org.eclipse.emf.internal.cdo.view.CDOViewImpl.doInvalidate(CDOViewImpl.java:868)
> at org.eclipse.emf.internal.cdo.view.CDOViewImpl$InvalidationRunnable.run(CDOViewImpl.java:1710)
> at org.eclipse.net4j.util.concurrent.QueueRunner.work(QueueRunner.java:26)
> at org.eclipse.net4j.util.concurrent.QueueRunner.work(QueueRunner.java:1)
> at org.eclipse.net4j.util.concurrent.QueueWorker.doWork(QueueWorker.java:78)
> at org.eclipse.net4j.util.concurrent.QueueWorker.work(QueueWorker.java:70)
> at org.eclipse.net4j.util.concurrent.Worker$WorkerThread.run(Worker.java:209)
> Caused by: java.lang.IllegalStateException: Different object was registered for OID1
> at org.eclipse.emf.internal.cdo.view.AbstractCDOView.registerObject(AbstractCDOView.java:1494)
> at org.eclipse.emf.internal.cdo.view.AbstractCDOView.registerProxyResource(AbstractCDOView.java:1444)
> ... 35 more
>
>
> I am using CDO 4.3 on Client and Server side.
>
> org.eclipse.emf.cdo_4.3.0.v20140520-1823
>
>
> All CDO Plugins where donwloaded from https://www.eclipse.org/cdo/downloads/
>
> Thanks in advance for your support.
>
> Cheers,
> Daniel
Cheers
/Eike
----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
|
|
|
|
Powered by
FUDForum. Page generated in 0.03692 seconds