Deleting message with nested behaviour in combined fragment broken

Issue #305 resolved
Matthias Schoettle created an issue

When removing the do() message in the screenshot below, the foo() message is not removed. However, the same works if not contained within a combined fragment.

Screen Shot 2015-05-27 at 10.09.32.png

Update: Just to explicitly point this out. The issue only occurs if do() has no return message as shown above.

Comments (6)

  1. Matthias Schoettle reporter

    With the proposed change in #425 to always have reply messages this would not be a problem. However, independent of this, there should be a test case that can catch this.

  2. Matthias Schoettle reporter

    The is that the current implementation to find the last fragment index to delete, is based on finding the next fragment on the lifeline the message is originating from. Since there is no other fragment within the operand on that lifeline, the toIndex is fromIndex + 1.

    So, unless a special case is used to determine this, the change proposed in #425 would simplify and solve it.

  3. Matthias Schoettle reporter

    Resolves #305: Adds special case to ensure that toIndex is incremented.

    The toIndex is incremented when the container is not the interaction, and for each fragment after the message being deleted. This ensures that even if there are no fragments on the same lifeline following the send event the correct toIndex is determined.

    → <<cset ee132b3c69d0>>

  4. Log in to comment