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.
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)