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)