Issue 17992: Location: p. 329 State Configurations (uml25-ftf) Source: International Business Machines (Mr. Omar Badreddin, oobahy(at)gmail.com) Nature: Clarification Severity: Significant Summary: Title: What state are you in when the entry action is being executed? As I remember, this is new in this version (UML 2.5). This line implies that a state is not active until the entry action has been executed and completed (or the entry method has returned). This is also how Umple (try.umple.org) implements state machines. The issue with this choice is that if you query the state machine while the entry action is being executed, the return value will be outdated. This is a concern even if the entry action takes insignificant amount of time. For example, what if the entry action code queries the state machine? In that case, the query will return the source state (and not the current state). Here is the example using Umple stateMachine { State1 { event1 -> State2; } State2 { entry /{defaultEntryActionMethod();} } } private void defaultEntryActionMathod() { if (currentState == State1) {.. .. ..} if (currentState == State2) {.. .. ..} } Resolution: Revised Text: Actions taken: September 27, 2012: received issue Discussion: End of Annotations:===== s is issue # 17992 Problem: 14.048 Severity: Medium Type: Ambiguity Location: p. 329 State Configurations Title: What state are you in when the entry action is being executed? As I remember, this is new in this version (UML 2.5). This line implies that a state is not active until the entry action has been executed and completed (or the entry method has returned). This is also how Umple (try.umple.org) implements state machines. The issue with this choice is that if you query the state machine while the entry action is being executed, the return value will be outdated. This is a concern even if the entry action takes insignificant amount of time. For example, what if the entry action code queries the state machine? In that case, the query will return the source state (and not the current state). Here is the example using Umple stateMachine { State1 { event1 -> State2; } State2 { entry /{defaultEntryActionMethod();} } } private void defaultEntryActionMathod() { if (currentState == State1) {.. .. ..} if (currentState == State2) {.. .. ..} } Source: Omar Bahy Badreddin Discussion: This is not new in UML 2.5, however, he raises an interesting concern. Michael Jesse Chonoles