itemisCREATE / statecharts

YAKINDU Statechart Tools (http://www.statecharts.org)
Eclipse Public License 1.0
176 stars 86 forks source link

Statechart contains invisible transition to parent state #1920

Closed ghost closed 6 years ago

ghost commented 6 years ago

The attached statechart contains a hidden transition to its parent state. We struggled to identify the cause of the unexpected behavior, and eventually discovered there was a transition to the parent state visible in the properties view but not in the diagram.

We pared the statechart down to the simplest representation of the problem. Unfortunately, we don't know what steps created this issue.

A workaround is to expand the parent state inline, at which point the transition becomes visible.

hiddentransition.sct.zip

BeckmaR commented 6 years ago

Thank you for the statechart! It's always nice to have such well documented examples. Sadly I cannot reproduce this issue, when I extract a subdiagram with a transition to the parent state, the special exit syntax is used and the transition is visible in both diagrams. It looks like something went wrong when the state was refactored. Obviously transitions cannot pass between a subdiagram's contents and its parent state, that's why they are normally split into a transition to a named exit in the subdiagram and then into a transition to itself on the parent state with the exit syntax.

ghost commented 6 years ago

Thanks for looking into it, and sorry I couldn't send you a before and after that caused the problem. Just to clarify, while you're not able to recreate the circumstances that led to this issue, when you look at the attached statechart, do you see a transition that is not visible on the diagram that should be visible?

BeckmaR commented 6 years ago

Yes, I do see it. The reason for its invisibility is just that it is not possible to display this transition, it basically goes to a wormhole - from the subdiagram-layer to the parent statechart layer. There is no way to display this properly because in both diagrams it's either lacking its source- or its target state. That's why normally these transitions are cut and a region exit is inserted.

As we currently do not have any steps to reproduce, I will close this issue. If you ever happen to experience this issue again, please comment, and especially if anyone finds a way to reproduce this. I personally could not do it, and looking at the refactoring code, I have no idea how that could ever happen.

BeckmaR commented 6 years ago

Too quickly - @andreasmuelder found a way to reproduce this. If a region from a composite state containing a transition to said composite state is copied into a subdiagram, the error occurs, because the copy action does not contain the needed transition reconnection. This needs to be fixed.

ghost commented 6 years ago

Great! I'm glad this proved helpful. Thanks for the deep dive and quick response.

andreasmuelder commented 6 years ago

scheduling this for the next milestone