Community
Participate
Working Groups
Build Identifier: 20100617-1415 [ActivityDiagram] When the classifier behavior of an activity0 is edited to refear to itself, it create an infinite loop, papyrus freezes, the model is corrupted and cannot be open anymore. Reproducible: Always Steps to Reproduce: 1.Create an activity0 2.Edit the classifier behavior the refer to activity0
Still reproducible. Bug is valid for any behaviors (e.g., statemachine, interaction or activity) that refers itself as classfier behavior.
According to the UML specification, a classifier behavior must subset an owned behavior. Thus, Papyrus should not allow to set the classifier behavior of an activity, state-machine or interaction to itself. Since eCore enforces the UML constraint, the result of setting the classifier behavior of an element to itself is an element that owns itself (eContainer = element). This causes an endless loop in method getViewToPersist of class DiagramEventBroker (gmf.runtime.core.listener). As said before, the endless loop is only the symptom: Papyrus needs to filter the list of elements that are candidates for the classifier behavior appropriately.
Camille, can you please have a look at this error. A solution needs filter the list of available behaviors, when the user edits the classifier-behavior via the Properties->Advanced tab.
This bug can not be reproduced any more, since the selection dialog (in class UMLPropertySource) does not allow to select the classifier itself. Beside of that, the selection dialog was rather useless, since it lists all behaviors of the model instead of only owned behaviors. This has been fixed in r11411. Now only owned behaviors are available via the advanced tab. Thus, I'll close the bug, yet it needs to be clarified whether filtering needs to be done for other attributes, not only classifierBehavior.