Closed cdamus closed 5 years ago
The difference between a scenario that works and one that doesn't is that the delete scenario that doesn't work falls down on a NudgeCommand
that is not executable. The nudge command is a component of the pulling up of elements in the trace following the message that was deleted.
The nudge command fails to be executable in the case that some message that needs to be pulled up is attached to two execution specifications, or lifelines, or other shapes that both are also being nudged up. In this case, neither message end contributes a command to the implementation of the message nudge, so overall the NudgeCommand
ends up not executable because it failed to compute a nudge for the element.
The fix in the pull request is just to drop in a trivially executable IdentityCommand
to recognize that the nudge is implicitly accomplished.
Some messages can be deleted and others not, depending on circumstances.
For example, in the
Nudging.di
model in the run-time test suite, the very first message in the trace,async
, cannot be deleted. Selecting it pressing theDel
key, nothing happens. No error dialogs, no messages in the workspace log, and crucially no change to the diagram and model.However, in the same model, deleting the
async2
message works just fine.