Bug 580938 - Exception when loading existing CDO object using CDOID
Summary: Exception when loading existing CDO object using CDOID
Status: NEW
Alias: None
Product: EMF
Classification: Modeling
Component: cdo.core (show other bugs)
Version: 4.19   Edit
Hardware: PC Windows 10
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-10-21 02:39 EDT by Anders Forsell CLA
Modified: 2022-11-06 04:26 EST (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 Anders Forsell CLA 2022-10-21 02:39:23 EDT
I am getting the below exceptions when loading an existing object using the CDOID.
We are using "legacy" models.

It seems it is picking up a closed view when trying to load the object.

Best Regards,
Anders

---

java.lang.IllegalStateException: View closed
	at org.eclipse.emf.spi.cdo.FSMUtil.adapt(FSMUtil.java:86)
	at org.eclipse.emf.cdo.eresource.impl.CDOResourceImpl.detached(CDOResourceImpl.java:1671)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eBasicSetContainer(BasicEObjectImpl.java:1367)
	at com.bombardier.ebitool.ocs.productdataservice.shoppinglist.impl.ShoppingItemImpl.basicSetParent(ShoppingItemImpl.java:1221)
	at com.bombardier.ebitool.ocs.productdataservice.shoppinglist.impl.ShoppingItemImpl.eInverseAdd(ShoppingItemImpl.java:2157)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(BasicEObjectImpl.java:1448)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstanceFeature(CDOLegacyWrapper.java:804)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstance(CDOLegacyWrapper.java:552)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.cdoInternalPostLoad(CDOLegacyWrapper.java:400)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.cleanObject(AbstractCDOView.java:2188)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.createObject(AbstractCDOView.java:2097)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObjectUnsynced(AbstractCDOView.java:1920)
	at org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.getObjectUnsynced(CDOTransactionImpl.java:1650)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1866)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1849)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1)
	at com.bombardier.ebitool.ocs.repository.cdo.ArtifactModelTransferContext.lambda$1(ArtifactModelTransferContext.java:244)
	at java.base/java.util.HashMap.forEach(HashMap.java:1337)
	at com.bombardier.ebitool.ocs.repository.cdo.ArtifactModelTransferContext.addExistingResourceToCopier(ArtifactModelTransferContext.java:232)
	at com.bombardier.ebitool.ocs.repository.cdo.ArtifactModelTransferContext.perform(ArtifactModelTransferContext.java:126)


java.lang.IllegalStateException: View closed
	at org.eclipse.emf.spi.cdo.FSMUtil.adapt(FSMUtil.java:86)
	at org.eclipse.emf.cdo.eresource.impl.CDOResourceImpl.detached(CDOResourceImpl.java:1671)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eBasicSetContainer(BasicEObjectImpl.java:1367)
	at com.bombardier.ebitool.ocs.productdataservice.shoppinglist.impl.ShoppingItemImpl.basicSetParent(ShoppingItemImpl.java:1221)
	at com.bombardier.ebitool.ocs.productdataservice.shoppinglist.impl.ShoppingItemImpl.eInverseAdd(ShoppingItemImpl.java:2157)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eInverseAdd(BasicEObjectImpl.java:1448)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstanceFeature(CDOLegacyWrapper.java:804)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstance(CDOLegacyWrapper.java:552)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.cdoInternalPostLoad(CDOLegacyWrapper.java:400)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.cleanObject(AbstractCDOView.java:2188)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.createObject(AbstractCDOView.java:2097)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObjectUnsynced(AbstractCDOView.java:1920)
	at org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.getObjectUnsynced(CDOTransactionImpl.java:1650)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1866)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.convertIDToObject(AbstractCDOView.java:2399)
	at org.eclipse.emf.internal.cdo.view.CDOStoreImpl.convertIDToObject(CDOStoreImpl.java:980)
	at org.eclipse.emf.internal.cdo.view.CDOStoreImpl.convertToEMFUnsynced(CDOStoreImpl.java:962)
	at org.eclipse.emf.internal.cdo.view.CDOStoreImpl.convertToEMF(CDOStoreImpl.java:913)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.getValueFromRevision(CDOLegacyWrapper.java:895)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstanceFeature(CDOLegacyWrapper.java:690)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstance(CDOLegacyWrapper.java:552)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.cdoInternalPostLoad(CDOLegacyWrapper.java:400)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.cleanObject(AbstractCDOView.java:2188)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.createObject(AbstractCDOView.java:2097)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObjectUnsynced(AbstractCDOView.java:1920)
	at org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.getObjectUnsynced(CDOTransactionImpl.java:1650)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1866)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.convertIDToObject(AbstractCDOView.java:2399)
	at org.eclipse.emf.internal.cdo.view.CDOStoreImpl.convertIDToObject(CDOStoreImpl.java:980)
	at org.eclipse.emf.internal.cdo.view.CDOStoreImpl.convertToEMFUnsynced(CDOStoreImpl.java:962)
	at org.eclipse.emf.internal.cdo.view.CDOStoreImpl.convertToEMF(CDOStoreImpl.java:913)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.getValueFromRevision(CDOLegacyWrapper.java:895)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstanceFeature(CDOLegacyWrapper.java:690)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstance(CDOLegacyWrapper.java:552)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.cdoInternalPostLoad(CDOLegacyWrapper.java:400)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.cleanObject(AbstractCDOView.java:2188)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.createObject(AbstractCDOView.java:2097)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObjectUnsynced(AbstractCDOView.java:1920)
	at org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.getObjectUnsynced(CDOTransactionImpl.java:1650)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1866)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.convertIDToObject(AbstractCDOView.java:2399)
	at org.eclipse.emf.internal.cdo.view.CDOStoreImpl.convertIDToObject(CDOStoreImpl.java:980)
	at org.eclipse.emf.internal.cdo.view.CDOStoreImpl.convertToEMFUnsynced(CDOStoreImpl.java:962)
	at org.eclipse.emf.internal.cdo.view.CDOStoreImpl.convertToEMF(CDOStoreImpl.java:913)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.getValueFromRevision(CDOLegacyWrapper.java:895)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstanceFeature(CDOLegacyWrapper.java:724)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstance(CDOLegacyWrapper.java:552)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.cdoInternalPostLoad(CDOLegacyWrapper.java:400)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.cleanObject(AbstractCDOView.java:2188)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.createObject(AbstractCDOView.java:2097)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObjectUnsynced(AbstractCDOView.java:1920)
	at org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.getObjectUnsynced(CDOTransactionImpl.java:1650)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1866)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.convertIDToObject(AbstractCDOView.java:2399)
	at org.eclipse.emf.internal.cdo.view.CDOStoreImpl.convertIDToObject(CDOStoreImpl.java:980)
	at org.eclipse.emf.internal.cdo.view.CDOStoreImpl.convertToEMFUnsynced(CDOStoreImpl.java:962)
	at org.eclipse.emf.internal.cdo.view.CDOStoreImpl.convertToEMF(CDOStoreImpl.java:913)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.getValueFromRevision(CDOLegacyWrapper.java:895)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstanceFeature(CDOLegacyWrapper.java:690)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstance(CDOLegacyWrapper.java:552)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.cdoInternalPostLoad(CDOLegacyWrapper.java:400)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.cleanObject(AbstractCDOView.java:2188)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.createObject(AbstractCDOView.java:2097)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObjectUnsynced(AbstractCDOView.java:1920)
	at org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.getObjectUnsynced(CDOTransactionImpl.java:1650)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1866)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.getEObjectFromPotentialID(CDOLegacyWrapper.java:968)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstanceContainer(CDOLegacyWrapper.java:609)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstance(CDOLegacyWrapper.java:541)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.cdoInternalPostLoad(CDOLegacyWrapper.java:400)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.cleanObject(AbstractCDOView.java:2188)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.createObject(AbstractCDOView.java:2097)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObjectUnsynced(AbstractCDOView.java:1920)
	at org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.getObjectUnsynced(CDOTransactionImpl.java:1650)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1866)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.getEObjectFromPotentialID(CDOLegacyWrapper.java:968)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstanceContainer(CDOLegacyWrapper.java:609)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.revisionToInstance(CDOLegacyWrapper.java:541)
	at org.eclipse.emf.internal.cdo.object.CDOLegacyWrapper.cdoInternalPostLoad(CDOLegacyWrapper.java:400)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.cleanObject(AbstractCDOView.java:2188)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.createObject(AbstractCDOView.java:2097)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObjectUnsynced(AbstractCDOView.java:1920)
	at org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.getObjectUnsynced(CDOTransactionImpl.java:1650)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1866)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1849)
	at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getObject(AbstractCDOView.java:1)
	at com.bombardier.ebitool.ocs.repository.cdo.ArtifactModelTransferContext.lambda$1(ArtifactModelTransferContext.java:244)
	at java.base/java.util.HashMap.forEach(HashMap.java:1337)
	at com.bombardier.ebitool.ocs.repository.cdo.ArtifactModelTransferContext.addExistingResourceToCopier(ArtifactModelTransferContext.java:232)
	at com.bombardier.ebitool.ocs.repository.cdo.ArtifactModelTransferContext.perform(ArtifactModelTransferContext.java:126)
Comment 1 Eike Stepper CLA 2022-11-06 04:26:56 EST
That is most likely a bug in the legacy mode. Unfortunately the committer who developed the legacy mode is not on board anymore and investigating these kinds of problems is a lot of effort.

Can't you use native models?