Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exception during EMV2 Serialization #2483

Closed
joeseibel opened this issue Oct 12, 2020 · 1 comment · Fixed by #2502
Closed

Exception during EMV2 Serialization #2483

joeseibel opened this issue Oct 12, 2020 · 1 comment · Fixed by #2502

Comments

@joeseibel
Copy link
Contributor

The following model causes an exception when serialized:

package abc
public
  annex EMV2 {**
    error types
      new_error_type: type;
      new_error_type2: type;
      new_error_type3: type;
      new_error_type4: type;
      new_error_type5: type extends new_error_type;
      new_error_type6: type;
    end types;
  **};

  annex abc {**
  **};

  system new_classifier
    features
      new_classifier_new_feature: requires data access;
      new_classifier_new_feature2: out data port;
      new_classifier_new_feature3: out data port;
    annex EMV2 {**
      error propagations
        new_classifier_new_feature3: out propagation {ErrorLibrary::AsymmetricItemOmission};
      end propagations;
    **};
  end new_classifier;
end abc;

This was observed by @philip-alldredge and can be reproducing by modifying the model via the graphical editor with the text editor closed. Stack trace:

3    [main] ERROR org.eclipse.xtext.util.ExceptionAcceptor  - No EObjectDescription could be found in Scope FeatureorPPReference.featureorPP for AadlPackage'abc'.ownedPublicSection->PublicPackageSection'abc_public'.ownedClassifier[0]->SystemType'new_classifier'.ownedDataPort[1]->DataPort'new_classifier_new_feature3'
Semantic Object: ErrorModelSubclause'unnamed_subclause'.propagations[0]->ErrorPropagation.featureorPPRef->FeatureorPPReference
URI: __synthetic.emv2
EStructuralFeature: errorModel::FeatureorPPReference.featureorPP
java.lang.RuntimeException: No EObjectDescription could be found in Scope FeatureorPPReference.featureorPP for AadlPackage'abc'.ownedPublicSection->PublicPackageSection'abc_public'.ownedClassifier[0]->SystemType'new_classifier'.ownedDataPort[1]->DataPort'new_classifier_new_feature3'
Semantic Object: ErrorModelSubclause'unnamed_subclause'.propagations[0]->ErrorPropagation.featureorPPRef->FeatureorPPReference
URI: __synthetic.emv2
EStructuralFeature: errorModel::FeatureorPPReference.featureorPP
	at org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic$ExceptionThrowingAcceptor.accept(ISerializationDiagnostic.java:131)
	at org.eclipse.xtext.serializer.tokens.CrossReferenceSerializer.getCrossReferenceNameFromScope(CrossReferenceSerializer.java:138)
	at org.osate.xtext.aadl2.errormodel.serializer.ErrorModelCrossReferenceSerializer.getCrossReferenceNameFromScope(ErrorModelCrossReferenceSerializer.java:105)
	at org.eclipse.xtext.serializer.tokens.CrossReferenceSerializer.serializeCrossRef(CrossReferenceSerializer.java:111)
	at org.osate.xtext.aadl2.errormodel.serializer.ErrorModelCrossReferenceSerializer.serializeCrossRef(ErrorModelCrossReferenceSerializer.java:50)
	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.getToken(SequenceFeeder.java:482)
	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.accept(SequenceFeeder.java:245)
	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.accept(BacktrackingSemanticSequencer.java:451)
	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.createSequence(BacktrackingSemanticSequencer.java:511)
	at org.osate.xtext.aadl2.errormodel.serializer.AbstractErrorModelSemanticSequencer.sequence_FeatureorPPReference(AbstractErrorModelSemanticSequencer.java:1058)
	at org.osate.xtext.aadl2.errormodel.serializer.AbstractErrorModelSemanticSequencer.sequence(AbstractErrorModelSemanticSequencer.java:367)
	at org.eclipse.xtext.serializer.sequencer.AbstractSemanticSequencer.createSequence(AbstractSemanticSequencer.java:67)
	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptEObjectRuleCall(SequenceFeeder.java:326)
	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptRuleCall(SequenceFeeder.java:353)
	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.accept(SequenceFeeder.java:247)
	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.accept(BacktrackingSemanticSequencer.java:451)
	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.createSequence(BacktrackingSemanticSequencer.java:511)
	at org.osate.xtext.aadl2.errormodel.serializer.AbstractErrorModelSemanticSequencer.sequence_ErrorPropagation(AbstractErrorModelSemanticSequencer.java:989)
	at org.osate.xtext.aadl2.errormodel.serializer.AbstractErrorModelSemanticSequencer.sequence(AbstractErrorModelSemanticSequencer.java:352)
	at org.eclipse.xtext.serializer.sequencer.AbstractSemanticSequencer.createSequence(AbstractSemanticSequencer.java:67)
	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptEObjectRuleCall(SequenceFeeder.java:326)
	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptRuleCall(SequenceFeeder.java:353)
	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.accept(SequenceFeeder.java:264)
	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.accept(BacktrackingSemanticSequencer.java:444)
	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.createSequence(BacktrackingSemanticSequencer.java:511)
	at org.osate.xtext.aadl2.errormodel.serializer.AbstractErrorModelSemanticSequencer.sequence_ErrorModelSubclause(AbstractErrorModelSemanticSequencer.java:954)
	at org.osate.xtext.aadl2.errormodel.serializer.AbstractErrorModelSemanticSequencer.sequence(AbstractErrorModelSemanticSequencer.java:344)
	at org.eclipse.xtext.serializer.sequencer.AbstractSemanticSequencer.createSequence(AbstractSemanticSequencer.java:67)
	at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:118)
	at org.eclipse.xtext.serializer.impl.Serializer.serializeToRegions(Serializer.java:140)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter.unsafeFormatAnnexText(Aadl2Formatter.java:5256)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter.formatAnnexText(Aadl2Formatter.java:5211)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter._format(Aadl2Formatter.java:3214)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter.format(Aadl2Formatter.java:5611)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter.lambda$267(Aadl2Formatter.java:2032)
	at java.lang.Iterable.forEach(Iterable.java:75)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter.formatComponentTypeCommon(Aadl2Formatter.java:2034)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter._format(Aadl2Formatter.java:1601)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter.format(Aadl2Formatter.java:5470)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter.lambda$197(Aadl2Formatter.java:1356)
	at java.lang.Iterable.forEach(Iterable.java:75)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter.formatPackageSectionCommon(Aadl2Formatter.java:1358)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter._format(Aadl2Formatter.java:1259)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter.format(Aadl2Formatter.java:5644)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter._format(Aadl2Formatter.java:1161)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter.format(Aadl2Formatter.java:5659)
	at org.eclipse.xtext.formatting2.internal.FormattableDocument.format(FormattableDocument.java:188)
	at org.eclipse.xtext.formatting2.AbstractFormatter2._format(AbstractFormatter2.java:208)
	at org.osate.xtext.aadl2.formatting2.Aadl2Formatter.format(Aadl2Formatter.java:5737)
	at org.eclipse.xtext.formatting2.AbstractFormatter2.format(AbstractFormatter2.java:276)
	at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:151)
	at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:198)
	at org.eclipse.xtext.resource.XtextResource.doSave(XtextResource.java:386)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1475)
	at org.osate.ge.internal.services.impl.DefaultAadlModificationService.getText(DefaultAadlModificationService.java:428)
	at org.osate.ge.internal.services.impl.DefaultAadlModificationService.performModification(DefaultAadlModificationService.java:309)
	at org.osate.ge.internal.services.impl.DefaultAadlModificationService.access$4(DefaultAadlModificationService.java:275)
	at org.osate.ge.internal.services.impl.DefaultAadlModificationService$1ModificationAction.execute(DefaultAadlModificationService.java:153)
	at org.osate.ge.internal.services.impl.DefaultActionService.execute(DefaultActionService.java:305)
	at org.osate.ge.internal.services.impl.DefaultAadlModificationService.performModifications(DefaultAadlModificationService.java:178)
	at org.osate.ge.internal.services.impl.DefaultAadlModificationService.lambda$0(DefaultAadlModificationService.java:115)
	at org.osate.ge.internal.services.impl.DefaultAadlModificationService.runInDisplayThread(DefaultAadlModificationService.java:121)
	at org.osate.ge.internal.services.impl.DefaultAadlModificationService.modify(DefaultAadlModificationService.java:115)
	at org.osate.ge.internal.operations.OperationExecutor.execute(OperationExecutor.java:90)
	at org.osate.ge.internal.graphiti.features.PaletteCommandCreateFeature$2CreateAction.lambda$0(PaletteCommandCreateFeature.java:102)
	at java.util.Optional.ifPresent(Optional.java:159)
	at org.osate.ge.internal.graphiti.features.PaletteCommandCreateFeature$2CreateAction.execute(PaletteCommandCreateFeature.java:99)
	at org.osate.ge.internal.services.impl.DefaultActionService.execute(DefaultActionService.java:305)
	at org.osate.ge.internal.services.impl.DefaultActionService.execute(DefaultActionService.java:299)
	at org.osate.ge.internal.ui.editor.AgeDiagramBehavior.lambda$13(AgeDiagramBehavior.java:1167)
	at org.osate.ge.internal.graphiti.services.impl.DefaultGraphitiService.execute(DefaultGraphitiService.java:94)
	at org.osate.ge.internal.graphiti.features.PaletteCommandCreateFeature.lambda$1(PaletteCommandCreateFeature.java:114)
	at java.util.Optional.map(Optional.java:215)
	at org.osate.ge.internal.graphiti.features.PaletteCommandCreateFeature.create(PaletteCommandCreateFeature.java:92)
	at org.eclipse.graphiti.features.impl.AbstractCreateFeature.execute(AbstractCreateFeature.java:94)
	at org.eclipse.graphiti.internal.command.GenericFeatureCommandWithContext.execute(GenericFeatureCommandWithContext.java:58)
	at org.eclipse.graphiti.internal.command.GFPreparableCommand.doExecute(GFPreparableCommand.java:34)
	at org.eclipse.emf.transaction.RecordingCommand.execute(RecordingCommand.java:135)
	at org.eclipse.graphiti.ui.internal.editor.GFWorkspaceCommandStackImpl.execute(GFWorkspaceCommandStackImpl.java:125)
	at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:219)
	at org.eclipse.graphiti.internal.command.CommandExec.executeCommand(CommandExec.java:82)
	at org.eclipse.graphiti.ui.internal.command.CreateModelObjectCommand.execute(CreateModelObjectCommand.java:46)
	at org.eclipse.graphiti.ui.internal.editor.EmfOnGefCommand.execute(EmfOnGefCommand.java:51)
	at org.eclipse.graphiti.internal.command.GFPreparableCommand2.doExecute(GFPreparableCommand2.java:40)
	at org.eclipse.emf.transaction.RecordingCommand.execute(RecordingCommand.java:135)
	at org.eclipse.emf.workspace.EMFCommandOperation.doExecute(EMFCommandOperation.java:119)
	at org.eclipse.emf.workspace.AbstractEMFOperation.execute(AbstractEMFOperation.java:150)
	at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:496)
	at org.eclipse.emf.workspace.impl.WorkspaceCommandStackImpl.doExecute(WorkspaceCommandStackImpl.java:208)
	at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:165)
	at org.eclipse.graphiti.ui.internal.editor.GFWorkspaceCommandStackImpl.execute(GFWorkspaceCommandStackImpl.java:94)
	at org.eclipse.graphiti.ui.internal.editor.GFCommandStack.execute(GFCommandStack.java:136)
	at org.osate.ge.internal.ui.editor.AgeDiagramBehavior$AgeGFCommandStack.execute(AgeDiagramBehavior.java:246)
	at org.eclipse.gef.tools.AbstractTool.executeCommand(AbstractTool.java:425)
	at org.eclipse.gef.tools.AbstractTool.executeCurrentCommand(AbstractTool.java:438)
	at org.eclipse.gef.tools.CreationTool.performCreation(CreationTool.java:269)
	at org.eclipse.gef.tools.CreationTool.handleButtonUp(CreationTool.java:189)
	at org.eclipse.gef.tools.AbstractTool.mouseUp(AbstractTool.java:1200)
	at org.eclipse.gef.EditDomain.mouseUp(EditDomain.java:301)
	at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMouseReleased(DomainEventDispatcher.java:380)
	at org.eclipse.draw2d.LightweightSystem$EventHandler.mouseUp(LightweightSystem.java:548)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:224)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4385)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1324)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3789)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1158)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1047)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:658)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:557)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:154)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1447)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1420)
@joeseibel joeseibel self-assigned this Oct 12, 2020
@lwrage lwrage added the emv2 label Oct 14, 2020
@lwrage lwrage added this to the 2.9.1 milestone Oct 14, 2020
@lwrage
Copy link
Contributor

lwrage commented Oct 20, 2020

I suspect it's related to temporarily putting an annex in a separate resource. Then the scope provider can't resolve references that require access to the component containing the annex.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants