eclipse / gemoc-studio-modeldebugging

gemoc-studio-modeldebugging
Eclipse Public License 1.0
6 stars 15 forks source link

DefaultModelLoader session issue for model split into several resource files #201

Closed dvojtise closed 3 years ago

dvojtise commented 3 years ago

When loading the model with the DefaultModelLoader

On some models (at least with my BPMN + Bpsim2 concurrent language https://github.com/gemoc/xBPMN), Sirius may report several exceptions:

java.lang.NullPointerException
    at org.eclipse.sirius.diagram.business.api.query.ToolSectionQuery.getOperationActions(ToolSectionQuery.java:83)
    at org.eclipse.sirius.diagram.ui.tools.internal.menu.PopupMenuContribution.contributeToPopupMenu(PopupMenuContribution.java:200)
    at org.eclipse.sirius.diagram.ui.tools.internal.menu.PopupMenuContribution.contributeToPopupMenuProgrammatically(PopupMenuContribution.java:154)
    at org.eclipse.sirius.diagram.ui.tools.internal.editor.tabbar.actions.TabbarSelectMenuManager.setVisible(TabbarSelectMenuManager.java:127)
    at org.eclipse.sirius.diagram.ui.tools.internal.editor.tabbar.TabbarFillerWithContributions.refreshItemsVisibility(TabbarFillerWithContributions.java:135)
    at org.eclipse.sirius.diagram.ui.tools.internal.editor.tabbar.TabbarFillerWithContributions.update(TabbarFillerWithContributions.java:113)
java.lang.NullPointerException
    at org.eclipse.sirius.diagram.business.internal.sync.DDiagramSynchronizer.activateNewMandatoryAdditionalLayers(DDiagramSynchronizer.java:301)
    at org.eclipse.sirius.diagram.business.internal.sync.DDiagramSynchronizer.refreshOperation(DDiagramSynchronizer.java:337)
    at org.eclipse.sirius.diagram.business.internal.sync.DDiagramSynchronizer.refresh(DDiagramSynchronizer.java:317)
    at org.eclipse.sirius.diagram.business.internal.dialect.DiagramDialectServices.refresh(DiagramDialectServices.java:240)

The resulting simulation doesn't have its debug and animation layers correctly activated.

Initial investigation shows that the sirius session used in org.eclipse.sirius.diagram.business.api.query.ToolSectionQuery.getOperationActions(ToolSectionQuery.java:83) and org.eclipse.sirius.diagram.business.internal.sync.DDiagramSynchronizer.activateNewMandatoryAdditionalLayers(DDiagramSynchronizer.java:301)is null

dvojtise commented 3 years ago

Apparently, the problem was due to my model that is split into several emf resources (bpsim model is referencing the bpmn model). The model loader was attaching only the root resource to the Sirius debug session.