Skip to content

Fix Undo/Redo for Notation element of an inheritance edge #94

@ndoschek

Description

@ndoschek

This exception is observed after Delete/Undo/Delete again on an inheritance edge:
(Originally observed in #81)
Probably we need to introduce high-level commands to solve this

org.eclipse.emfcloud.modelserver.common.codecs.EncodingException: org.eclipse.emf.ecore.resource.Resource$IOWrappedException: The object 'org.eclipse.emfcloud.ecore.enotation.impl.EdgeImpl@12c2d17c (type: edge:inheritance)' is not contained in a resource.
java.lang.RuntimeException: org.eclipse.emfcloud.modelserver.common.codecs.EncodingException: org.eclipse.emf.ecore.resource.Resource$IOWrappedException: The object 'org.eclipse.emfcloud.ecore.enotation.impl.EdgeImpl@12c2d17c (type: edge:inheritance)' is not contained in a resource.
	at org.eclipse.emfcloud.modelserver.client.ModelServerClient.encode(ModelServerClient.java:749)
	at org.eclipse.emfcloud.modelserver.client.ModelServerClient.edit(ModelServerClient.java:477)
	at org.eclipse.emfcloud.ecore.glsp.model.EcoreModelServerAccess.editCompound(EcoreModelServerAccess.java:664)
	at org.eclipse.emfcloud.ecore.glsp.model.EcoreModelServerAccess.removeESuperType(EcoreModelServerAccess.java:659)
	at org.eclipse.emfcloud.ecore.glsp.operationhandler.EcoreDeleteOperationHandler.lambda$2(EcoreDeleteOperationHandler.java:77)
	at java.base/java.util.Optional.ifPresentOrElse(Optional.java:203)
	at org.eclipse.emfcloud.ecore.glsp.operationhandler.EcoreDeleteOperationHandler.lambda$0(EcoreDeleteOperationHandler.java:43)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.eclipse.emfcloud.ecore.glsp.operationhandler.EcoreDeleteOperationHandler.executeOperation(EcoreDeleteOperationHandler.java:39)
	at org.eclipse.emfcloud.ecore.glsp.operationhandler.EcoreDeleteOperationHandler.executeOperation(EcoreDeleteOperationHandler.java:1)
	at org.eclipse.emfcloud.ecore.glsp.operationhandler.ModelServerAwareBasicOperationHandler.executeOperation(ModelServerAwareBasicOperationHandler.java:41)
	at org.eclipse.glsp.server.operations.BasicOperationHandler.execute(BasicOperationHandler.java:41)
	at org.eclipse.emfcloud.ecore.glsp.handler.EcoreOperationActionHandler.executeHandler(EcoreOperationActionHandler.java:46)
	at org.eclipse.emfcloud.ecore.glsp.handler.EcoreOperationActionHandler.executeAction(EcoreOperationActionHandler.java:38)
	at org.eclipse.glsp.server.operations.OperationActionHandler.executeAction(OperationActionHandler.java:1)
	at org.eclipse.glsp.server.actions.BasicActionHandler.execute(BasicActionHandler.java:45)
	at org.eclipse.glsp.server.internal.action.DefaultActionDispatcher.runAction(DefaultActionDispatcher.java:206)
	at org.eclipse.glsp.server.internal.action.DefaultActionDispatcher.handleMessage(DefaultActionDispatcher.java:179)
	at org.eclipse.glsp.server.internal.action.DefaultActionDispatcher.handleNextMessage(DefaultActionDispatcher.java:164)
	at org.eclipse.glsp.server.internal.action.DefaultActionDispatcher.runThread(DefaultActionDispatcher.java:151)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.eclipse.emfcloud.modelserver.common.codecs.EncodingException: org.eclipse.emf.ecore.resource.Resource$IOWrappedException: The object 'org.eclipse.emfcloud.ecore.enotation.impl.EdgeImpl@12c2d17c (type: edge:inheritance)' is not contained in a resource.
	at org.eclipse.emfcloud.modelserver.common.codecs.XmiCodec.encode(XmiCodec.java:43)
	at org.eclipse.emfcloud.modelserver.client.ModelServerClient.encode(ModelServerClient.java:744)
	... 20 more
Caused by: org.eclipse.emf.ecore.resource.Resource$IOWrappedException: The object 'org.eclipse.emfcloud.ecore.enotation.impl.EdgeImpl@12c2d17c (type: edge:inheritance)' is not contained in a resource.
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.endSave(XMLSaveImpl.java:301)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:265)
	at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:389)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1475)
	at org.eclipse.emfcloud.modelserver.common.codecs.XmiCodec.encode(XmiCodec.java:41)
	... 21 more
Caused by: org.eclipse.emf.ecore.xmi.DanglingHREFException: The object 'org.eclipse.emfcloud.ecore.enotation.impl.EdgeImpl@12c2d17c (type: edge:inheritance)' is not contained in a resource.
	at org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.handleDanglingHREF(XMLHelperImpl.java:754)
	at org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.getURIFragment(XMLHelperImpl.java:725)
	at org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.getIDREF(XMLHelperImpl.java:747)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveIDRefMany(XMLSaveImpl.java:2023)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1370)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1181)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1042)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2417)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1553)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.writeTopObject(XMLSaveImpl.java:683)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.traverse(XMLSaveImpl.java:591)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:251)
	... 24 more

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions