Bug 525437 - [sequence diagram] Exceptions when deleting operands
Summary: [sequence diagram] Exceptions when deleting operands
Status: NEW
Alias: None
Product: Sirius
Classification: Modeling
Component: Diagram (show other bugs)
Version: 5.1.0   Edit
Hardware: PC Windows NT
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2017-10-02 05:11 EDT by Pierre Guilet CLA
Modified: 2017-10-09 08:44 EDT (History)
2 users (show)

See Also:


Attachments
project to reproduce (7.19 KB, application/x-zip-compressed)
2017-10-02 05:11 EDT, Pierre Guilet CLA
no flags Details
project to reproduce (52.65 KB, application/x-zip-compressed)
2017-10-03 10:18 EDT, Pierre Guilet CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Pierre Guilet CLA 2017-10-02 05:11:40 EDT
Created attachment 270774 [details]
project to reproduce

Some exceptions happens when deleting operands containing an execution and intricated combined fragment and interaction use.

org.eclipse.core.commands.ExecutionException: While executing the operation, an exception occurred
	at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:496)
	at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramCommandStack.execute(DDiagramCommandStack.java:71)
	at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramCommandStack.execute(DDiagramCommandStack.java:52)
	at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramCommandStack.execute(DiagramCommandStack.java:156)
	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:74)
	at org.eclipse.gmf.runtime.diagram.ui.internal.actions.PromptingDeleteAction.run(PromptingDeleteAction.java:173)
	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:104)
	at org.eclipse.gef.KeyHandler.keyPressed(KeyHandler.java:59)
	at org.eclipse.gmf.runtime.diagram.ui.internal.parts.DirectEditKeyHandler.keyPressed(DirectEditKeyHandler.java:89)
	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:112)
	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:168)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1088)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1130)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1126)
	at org.eclipse.swt.widgets.Widget.wmKeyDown(Widget.java:1849)
	at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Control.java:5216)
	at org.eclipse.swt.widgets.Canvas.WM_KEYDOWN(Canvas.java:454)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4875)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5178)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2560)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3815)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1044)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
	at org.eclipse.ui.internal.Workbench$$Lambda$65/1756143301.run(Unknown Source)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
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:109)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.applySemanticReordering(SynchronizeISequenceEventsSemanticOrderingOperation.java:314)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSemanticPosition(SynchronizeISequenceEventsSemanticOrderingOperation.java:181)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSubEventsSemanticPositions(SynchronizeISequenceEventsSemanticOrderingOperation.java:215)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSemanticPosition(SynchronizeISequenceEventsSemanticOrderingOperation.java:186)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSemanticPositions(SynchronizeISequenceEventsSemanticOrderingOperation.java:130)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.execute(SynchronizeISequenceEventsSemanticOrderingOperation.java:125)
	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:50)
	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:102)
	at org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand.doExecute(AbstractTransactionalCommand.java:247)
	at org.eclipse.emf.workspace.AbstractEMFOperation.execute(AbstractEMFOperation.java:150)
	at org.eclipse.sirius.diagram.ui.tools.internal.commands.WrappingCommandIgnoringAffectedFiles.execute(WrappingCommandIgnoringAffectedFiles.java:124)
	at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:488)
	... 60 more

java.lang.RuntimeException
	at org.eclipse.sirius.tools.api.interpreter.InterpreterRegistry.getInterpreter(InterpreterRegistry.java:72)
	at org.eclipse.sirius.tools.api.interpreter.InterpreterUtil.getInterpreter(InterpreterUtil.java:39)
	at org.eclipse.sirius.diagram.sequence.business.internal.elements.AbstractFrame.computeCoveredLifelines(AbstractFrame.java:103)
	at org.eclipse.sirius.diagram.sequence.business.internal.util.SubEventsHelper.getCoverage(SubEventsHelper.java:135)
	at org.eclipse.sirius.diagram.sequence.business.internal.util.SubEventsHelper.getValidSubEvents(SubEventsHelper.java:110)
	at org.eclipse.sirius.diagram.sequence.business.internal.util.SubEventsHelper.getSubEvents(SubEventsHelper.java:89)
	at org.eclipse.sirius.diagram.sequence.business.internal.elements.Operand.getSubEvents(Operand.java:149)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:159)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:160)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.addAllDescendants(ISequenceEventQuery.java:148)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.getAllDescendants(ISequenceEventQuery.java:128)
	at org.eclipse.sirius.diagram.sequence.business.internal.query.ISequenceEventQuery.getAllDescendants(ISequenceEventQuery.java:100)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.selectEndsToIgnore(SynchronizeISequenceEventsSemanticOrderingOperation.java:271)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSemanticPosition(SynchronizeISequenceEventsSemanticOrderingOperation.java:156)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSubEventsSemanticPositions(SynchronizeISequenceEventsSemanticOrderingOperation.java:215)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSemanticPosition(SynchronizeISequenceEventsSemanticOrderingOperation.java:186)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.updateSemanticPositions(SynchronizeISequenceEventsSemanticOrderingOperation.java:130)
	at org.eclipse.sirius.diagram.sequence.business.internal.operation.SynchronizeISequenceEventsSemanticOrderingOperation.execute(SynchronizeISequenceEventsSemanticOrderingOperation.java:125)
	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:50)
	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:102)
	at org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand.doExecute(AbstractTransactionalCommand.java:247)
	at org.eclipse.emf.workspace.AbstractEMFOperation.execute(AbstractEMFOperation.java:150)
	at org.eclipse.sirius.diagram.ui.tools.internal.commands.WrappingCommandIgnoringAffectedFiles.execute(WrappingCommandIgnoringAffectedFiles.java:124)
	at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:488)
	at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramCommandStack.execute(DDiagramCommandStack.java:71)
	at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramCommandStack.execute(DDiagramCommandStack.java:52)
	at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramCommandStack.execute(DiagramCommandStack.java:156)
	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:74)
	at org.eclipse.gmf.runtime.diagram.ui.internal.actions.PromptingDeleteAction.run(PromptingDeleteAction.java:173)
	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:104)
	at org.eclipse.gef.KeyHandler.keyPressed(KeyHandler.java:59)
	at org.eclipse.gmf.runtime.diagram.ui.internal.parts.DirectEditKeyHandler.keyPressed(DirectEditKeyHandler.java:89)
	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:112)
	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:168)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1088)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1130)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1126)
	at org.eclipse.swt.widgets.Widget.wmKeyDown(Widget.java:1849)
	at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Control.java:5216)
	at org.eclipse.swt.widgets.Canvas.WM_KEYDOWN(Canvas.java:454)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4875)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5178)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2560)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3815)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1044)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
	at org.eclipse.ui.internal.Workbench$$Lambda$65/1756143301.run(Unknown Source)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1499)


Steps to reproduce:
1- Import attached project and open "Sequence diagram on" representation
2-select the condition 1 of combined fragment "alt3" and delete it.

Then the exceptions occurs.
Comment 1 Pierre Guilet CLA 2017-10-03 10:18:09 EDT
Created attachment 270804 [details]
project to reproduce
Comment 2 Pierre Guilet CLA 2017-10-03 10:19:29 EDT
Steps to reproduce:
1- Import attached project and open "Sequence diagram on" representation
2-select the condition 1 of combined fragment "alt5" and delete it.

Then the exceptions occurs.
Comment 3 Julien Dupont CLA 2017-10-03 10:43:33 EDT
Steps to reproduce:

1- Import attached project and open "Sequence diagram on Interaction 2" representation
2-select the condition 1 of combined fragment "alt5" and delete it (from the Delete from Model in tabbar. The Del key do nothing).

Then the exceptions occurs.
Comment 4 Pierre-Charles David CLA 2017-10-09 08:44:15 EDT
Note that this was alread present in Sirius 4.1 (and probably earlier too).