Uploaded image for project: 'Commons SCXML'
  1. Commons SCXML
  2. SCXML-203

Calculation of states to be entered can be depending on states to be exited and thereby also their possible history

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 2.0
    • 2.0
    • None

    Description

      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.

      Attachments

        Activity

          People

            ate Ate Douma
            ate Ate Douma
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: