Author: ate
Date: Sat Oct 11 11:06:42 2014
New Revision: 1631037

URL: http://svn.apache.org/r1631037
Log:
SCXML-211: fix for bug in current SCXML specification for 
addDescendantStatesToEnter algorithm

Modified:
    
commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml2/semantics/SCXMLSemanticsImpl.java

Modified: 
commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml2/semantics/SCXMLSemanticsImpl.java
URL: 
http://svn.apache.org/viewvc/commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml2/semantics/SCXMLSemanticsImpl.java?rev=1631037&r1=1631036&r2=1631037&view=diff
==============================================================================
--- 
commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml2/semantics/SCXMLSemanticsImpl.java
 (original)
+++ 
commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml2/semantics/SCXMLSemanticsImpl.java
 Sat Oct 11 11:06:42 2014
@@ -476,11 +476,15 @@ public class SCXMLSemanticsImpl implemen
                 step.getDefaultHistoryTransitions().put(h.getParent(), 
h.getTransition());
                 for (TransitionTarget dtt : h.getTransition().getTargets()) {
                     addDescendantStatesToEnter(exctx, step, dtt);
+                }
+                for (TransitionTarget dtt : h.getTransition().getTargets()) {
                     addAncestorStatesToEnter(exctx, step, dtt, tt.getParent());
                 }
             } else {
                 for (TransitionTarget dtt : lastConfiguration) {
                     addDescendantStatesToEnter(exctx, step, dtt);
+                }
+                for (TransitionTarget dtt : lastConfiguration) {
                     addAncestorStatesToEnter(exctx, step, dtt, tt.getParent());
                 }
             }
@@ -499,6 +503,8 @@ public class SCXMLSemanticsImpl implemen
                 step.getDefaultEntrySet().add(es);
                 for (TransitionTarget dtt : 
((State)es).getInitial().getTransition().getTargets()) {
                     addDescendantStatesToEnter(exctx, step, dtt);
+                }
+                for (TransitionTarget dtt : 
((State)es).getInitial().getTransition().getTargets()) {
                     addAncestorStatesToEnter(exctx, step, dtt, tt);
                 }
             }


Reply via email to