Ate Douma created SCXML-203:
-------------------------------

             Summary: Calculation of states to be entered can be depending on 
states to be exited and thereby also their possible history
                 Key: SCXML-203
                 URL: https://issues.apache.org/jira/browse/SCXML-203
             Project: Commons SCXML
          Issue Type: Bug
    Affects Versions: 2.0
            Reporter: Ate Douma
            Assignee: Ate Douma
            Priority: Minor
             Fix For: 2.0


Currently the SCXMLSemantics implementation calculates the states to be exited 
and entered upfront, before the actual exiting and entering is performed.
This is done explicitly to be able to ensure the resulting active states 
configuration is a valid one.

However, the currently implementation overlooks the fact that for certain 
transitions the states exited may have to be re-entered again. And if for those 
exited state(s) history is recorded, then this might influence and change the 
resulting set of entered states.

Thus the current implementation therefore needs to be corrected for this.

However, following the exact order of processing and execution as defined by 
SCXML specification its algorithm for SCXML processing will result in exiting 
states before the determination of the states to be entered. The resulting 
active state configuration is 'assumed' to be always valid thereafter. 
 
To be able to still ensure the resulting active state configuration to be valid 
*before* actually transition to it (like we do now), the calculation of the 
states to exit will now be done by also upfront recording the histories for 
these states (if applicable) as temporary configurations in the Step itself.
When the step to be taken is ensured to be valid, these 'pre-recorded' 
histories will be persisted to the SCInstance when the states are actually 
exited, while they already can be used before to determine the proper and 
correct states to enter if needed.  



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to