Skip to content

Multiple annotations on same element cannot be serialized to .tdltx

Open the attached file using "Sample Reflective Ecore model Editor". Remove one annotation, save, add back (Undo), save again. Observe the error below.

Annotations_bug_example.tdltx

java.lang.RuntimeException: Could not serialize DataResourceMapping: Element.annotation violates the upper bound: It holds 2 values, but only 1 are allowed. Semantic Object: Package'TwoAnnotations'.packagedElement[2]->DataResourceMapping'HttpAdapter' URI: platform:/resource/TDL%20OpenAPI%20execution/Annotations%20bug%20example.tdltx Context: PackageableElement returns DataResourceMapping at org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic$ExceptionThrowingAcceptor.accept(ISerializationDiagnostic.java:132) at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.createSequence(BacktrackingSemanticSequencer.java:514) at org.etsi.mts.tdl.serializer.TDLtxSemanticSequencer.sequence_AnnotationCommentFragment_DataResourceMapping(TDLtxSemanticSequencer.java:1881) at org.etsi.mts.tdl.serializer.TDLtxSemanticSequencer.sequence(TDLtxSemanticSequencer.java:713) at org.eclipse.xtext.serializer.sequencer.AbstractSemanticSequencer.createSequence(AbstractSemanticSequencer.java:68) at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptEObjectRuleCall(SequenceFeeder.java:327) at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptRuleCall(SequenceFeeder.java:354) at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.accept(SequenceFeeder.java:265) at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.accept(BacktrackingSemanticSequencer.java:445) at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.createSequence(BacktrackingSemanticSequencer.java:512) at org.etsi.mts.tdl.serializer.TDLtxSemanticSequencer.sequence_AnnotationCommentFragment_Package(TDLtxSemanticSequencer.java:3051) at org.etsi.mts.tdl.serializer.TDLtxSemanticSequencer.sequence(TDLtxSemanticSequencer.java:863) at org.eclipse.xtext.serializer.sequencer.AbstractSemanticSequencer.createSequence(AbstractSemanticSequencer.java:68) at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:122) at org.eclipse.xtext.serializer.impl.Serializer.serializeToRegions(Serializer.java:144) at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:150) at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:202) at org.eclipse.xtext.resource.XtextResource.doSave(XtextResource.java:399) at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1475) at org.eclipse.emf.ecore.resource.impl.ResourceImpl.saveOnlyIfChangedWithMemoryBuffer(ResourceImpl.java:1189) at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1030) at org.eclipse.emf.ecore.presentation.EcoreEditor$16.execute(EcoreEditor.java:1769) at org.eclipse.ui.actions.WorkspaceModifyOperation.lambda$0(WorkspaceModifyOperation.java:110) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2453) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2478) at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:131) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)

Edited by Martti Käärik
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information