Bug 573237 - Sequence Diagram - Exception when deleting operand
Summary: Sequence Diagram - Exception when deleting operand
Status: UNCONFIRMED
Alias: None
Product: Sirius
Classification: Modeling
Component: Diagram (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 10
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2021-04-29 05:54 EDT by Glenn Plouhinec CLA
Modified: 2021-05-05 09:17 EDT (History)
1 user (show)

See Also:


Attachments
Model to reproduce (11.72 KB, application/x-zip-compressed)
2021-04-29 05:54 EDT, Glenn Plouhinec CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Glenn Plouhinec CLA 2021-04-29 05:54:20 EDT
Created attachment 286262 [details]
Model to reproduce

In Sirius 6.5.0, two exceptions are raised when deleting an Operand in one of the stacked Combined Fragments.

To reproduce the bug, import attached projet from "operand_deletion.zip", open the Interaction diagram "Sequence Diagram on ", then select "[condition1]" Operand of "alt.3" Combined Fragment, delete it (I use the "del" keyboard shortcut) and errors are raised. 
Note that this is similar to bugzilla https://bugs.eclipse.org/bugs/show_bug.cgi?id=525437.

eclipse.buildId=unknown
java.version=1.8.0_271
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=fr_FR
Framework arguments:  -pluginCustomization pluginCustomization.ini
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -pluginCustomization pluginCustomization.ini

org.eclipse.gmf.runtime.common.core
Error
Thu Apr 29 11:27:31 CEST 2021
execute

org.eclipse.core.commands.ExecutionException: While executing the operation, an exception occurred
	at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:504)
	at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramCommandStack.execute(DDiagramCommandStack.java:73)
	at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramCommandStack.execute(DDiagramCommandStack.java:54)
	at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramCommandStack.execute(DiagramCommandStack.java:157)
	at org.eclipse.gef.ui.actions.WorkbenchPartAction.execute(WorkbenchPartAction.java:83)
	at org.eclipse.sirius.diagram.ui.tools.internal.actions.delete.DeleteWithHookAction.execute(DeleteWithHookAction.java:75)
	at org.eclipse.gmf.runtime.diagram.ui.internal.actions.PromptingDeleteAction.run(PromptingDeleteAction.java:174)
	at org.eclipse.gef.KeyHandler.performStroke(KeyHandler.java:83)
	at org.eclipse.gef.KeyHandler.keyPressed(KeyHandler.java:55)
	at org.eclipse.gef.KeyHandler.keyPressed(KeyHandler.java:59)
	at org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler.keyPressed(GraphicalViewerKeyHandler.java:355)
	at org.eclipse.gmf.runtime.diagram.ui.internal.parts.DiagramGraphicalViewerKeyHandler.keyPressed(DiagramGraphicalViewerKeyHandler.java:105)
	at org.eclipse.gef.KeyHandler.keyPressed(KeyHandler.java:59)
	at org.eclipse.gmf.runtime.diagram.ui.internal.parts.DirectEditKeyHandler.keyPressed(DirectEditKeyHandler.java:90)
	at org.eclipse.gef.tools.SelectionTool.handleKeyDown(SelectionTool.java:331)
	at org.eclipse.gef.tools.PanningSelectionTool.handleKeyDown(PanningSelectionTool.java:161)
	at org.eclipse.gmf.runtime.diagram.ui.services.palette.SelectionToolEx.handleKeyDown(SelectionToolEx.java:113)
	at org.eclipse.gef.tools.AbstractTool.keyDown(AbstractTool.java:1016)
	at org.eclipse.gef.tools.SelectionTool.keyDown(SelectionTool.java:491)
	at org.eclipse.gef.EditDomain.keyDown(EditDomain.java:169)
	at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchKeyPressed(DomainEventDispatcher.java:252)
	at org.eclipse.draw2d.LightweightSystem$EventHandler.keyPressed(LightweightSystem.java:497)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:171)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4213)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1037)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1046)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1088)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1084)
	at org.eclipse.swt.widgets.Widget.wmKeyDown(Widget.java:1727)
	at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Control.java:5149)
	at org.eclipse.swt.widgets.Canvas.WM_KEYDOWN(Canvas.java:406)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4772)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:340)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4923)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(Native Method)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3628)
	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)
Caused by: java.lang.NullPointerException
	at org.eclipse.emf.transaction.util.TransactionUtil.getEditingDomain(TransactionUtil.java:61)
	at org.eclipse.sirius.diagram.sequence.business.internal.tool.ToolCommandBuilder.buildReorderCommand(ToolCommandBuilder.java:110)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.applySemanticReordering(SynchronizeISequenceEventsSemanticOrderingOperation.java:318)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSemanticPosition(SynchronizeISequenceEventsSemanticOrderingOperation.java:185)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSubEventsSemanticPositions(SynchronizeISequenceEventsSemanticOrderingOperation.java:219)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSemanticPosition(SynchronizeISequenceEventsSemanticOrderingOperation.java:190)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSemanticPositions(SynchronizeISequenceEventsSemanticOrderingOperation.java:134)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.execute(SynchronizeISequenceEventsSemanticOrderingOperation.java:129)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.execute(SynchronizeISequenceEventsSemanticOrderingOperation.java:1)
	at org.eclipse.sirius.diagram.ui.tools.internal.edit.command.RecordingCommandsExecutor.doExecute(RecordingCommandsExecutor.java:52)
	at org.eclipse.emf.transaction.RecordingCommand.execute(RecordingCommand.java:135)
	at org.eclipse.emf.common.command.CompoundCommand.execute(CompoundCommand.java:261)
	at org.eclipse.sirius.diagram.ui.tools.api.command.GMFCommandWrapper.doExecuteWithResult(GMFCommandWrapper.java:104)
	at org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand.doExecute(AbstractTransactionalCommand.java:248)
	at org.eclipse.emf.workspace.AbstractEMFOperation.execute(AbstractEMFOperation.java:150)
	at org.eclipse.sirius.diagram.ui.tools.internal.commands.WrappingCommandIgnoringAffectedFiles.execute(WrappingCommandIgnoringAffectedFiles.java:125)
	at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:496)
	... 58 more



eclipse.buildId=unknown
java.version=1.8.0_271
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=fr_FR
Framework arguments:  -pluginCustomization pluginCustomization.ini
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -pluginCustomization pluginCustomization.ini

org.eclipse.sirius
Error
Thu Apr 29 11:27:31 CEST 2021
Impossible to find an interpreter - Model element is null

java.lang.RuntimeException
	at org.eclipse.sirius.tools.api.interpreter.InterpreterRegistry.getInterpreter(InterpreterRegistry.java:74)
	at org.eclipse.sirius.tools.api.interpreter.InterpreterUtil.getInterpreter(InterpreterUtil.java:41)
	at org.eclipse.sirius.diagram.sequence.business.internal.elements.AbstractFrame.computeCoveredLifelines(AbstractFrame.java:113)
	at org.eclipse.sirius.diagram.sequence.business.internal.util.SubEventsHelper.getCoverage(SubEventsHelper.java:147)
	at org.eclipse.sirius.diagram.sequence.business.internal.util.SubEventsHelper.validCoverage(SubEventsHelper.java:268)
	at org.eclipse.sirius.diagram.sequence.business.internal.util.SubEventsHelper.getFrameChildrenInParentRange(SubEventsHelper.java:227)
	at org.eclipse.sirius.diagram.sequence.business.internal.util.SubEventsHelper.getValidSubEvents(SubEventsHelper.java:127)
	at org.eclipse.sirius.diagram.sequence.business.internal.util.SubEventsHelper.getSubEvents(SubEventsHelper.java:97)
	at org.eclipse.sirius.diagram.sequence.business.internal.elements.Operand.getSubEvents(Operand.java:146)
	at org.eclipse.sirius.diagram.sequence.business.internal.elements.Operand.getEventsToMoveWith(Operand.java:151)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSubEventsSemanticPositions(SynchronizeISequenceEventsSemanticOrderingOperation.java:218)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSemanticPosition(SynchronizeISequenceEventsSemanticOrderingOperation.java:190)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSemanticPositions(SynchronizeISequenceEventsSemanticOrderingOperation.java:134)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.execute(SynchronizeISequenceEventsSemanticOrderingOperation.java:129)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.execute(SynchronizeISequenceEventsSemanticOrderingOperation.java:1)
	at org.eclipse.sirius.diagram.ui.tools.internal.edit.command.RecordingCommandsExecutor.doExecute(RecordingCommandsExecutor.java:52)
	at org.eclipse.emf.transaction.RecordingCommand.execute(RecordingCommand.java:135)
	at org.eclipse.emf.common.command.CompoundCommand.execute(CompoundCommand.java:261)
	at org.eclipse.sirius.diagram.ui.tools.api.command.GMFCommandWrapper.doExecuteWithResult(GMFCommandWrapper.java:104)
	at org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand.doExecute(AbstractTransactionalCommand.java:248)
	at org.eclipse.emf.workspace.AbstractEMFOperation.execute(AbstractEMFOperation.java:150)
	at org.eclipse.sirius.diagram.ui.tools.internal.commands.WrappingCommandIgnoringAffectedFiles.execute(WrappingCommandIgnoringAffectedFiles.java:125)
	at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:496)
	at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramCommandStack.execute(DDiagramCommandStack.java:73)
	at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramCommandStack.execute(DDiagramCommandStack.java:54)
	at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramCommandStack.execute(DiagramCommandStack.java:157)
	at org.eclipse.gef.ui.actions.WorkbenchPartAction.execute(WorkbenchPartAction.java:83)
	at org.eclipse.sirius.diagram.ui.tools.internal.actions.delete.DeleteWithHookAction.execute(DeleteWithHookAction.java:75)
	at org.eclipse.gmf.runtime.diagram.ui.internal.actions.PromptingDeleteAction.run(PromptingDeleteAction.java:174)
	at org.eclipse.gef.KeyHandler.performStroke(KeyHandler.java:83)
	at org.eclipse.gef.KeyHandler.keyPressed(KeyHandler.java:55)
	at org.eclipse.gef.KeyHandler.keyPressed(KeyHandler.java:59)
	at org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler.keyPressed(GraphicalViewerKeyHandler.java:355)
	at org.eclipse.gmf.runtime.diagram.ui.internal.parts.DiagramGraphicalViewerKeyHandler.keyPressed(DiagramGraphicalViewerKeyHandler.java:105)
	at org.eclipse.gef.KeyHandler.keyPressed(KeyHandler.java:59)
	at org.eclipse.gmf.runtime.diagram.ui.internal.parts.DirectEditKeyHandler.keyPressed(DirectEditKeyHandler.java:90)
	at org.eclipse.gef.tools.SelectionTool.handleKeyDown(SelectionTool.java:331)
	at org.eclipse.gef.tools.PanningSelectionTool.handleKeyDown(PanningSelectionTool.java:161)
	at org.eclipse.gmf.runtime.diagram.ui.services.palette.SelectionToolEx.handleKeyDown(SelectionToolEx.java:113)
	at org.eclipse.gef.tools.AbstractTool.keyDown(AbstractTool.java:1016)
	at org.eclipse.gef.tools.SelectionTool.keyDown(SelectionTool.java:491)
	at org.eclipse.gef.EditDomain.keyDown(EditDomain.java:169)
	at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchKeyPressed(DomainEventDispatcher.java:252)
	at org.eclipse.draw2d.LightweightSystem$EventHandler.keyPressed(LightweightSystem.java:497)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:171)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4213)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1037)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1046)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1088)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1084)
	at org.eclipse.swt.widgets.Widget.wmKeyDown(Widget.java:1727)
	at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Control.java:5149)
	at org.eclipse.swt.widgets.Canvas.WM_KEYDOWN(Canvas.java:406)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4772)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:340)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4923)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(Native Method)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3628)
	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)
Comment 1 Glenn Plouhinec CLA 2021-04-30 11:51:35 EDT
Also reproduced with Sirius 6.3.5, OD 11.3.2.