You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Johannes Wienke (JIRA)" <ji...@apache.org> on 2014/08/27 15:06:58 UTC

[jira] [Created] (SCXML-205) finalStep gets called twice in case of a statemachine with a single state

Johannes Wienke created SCXML-205:
-------------------------------------

             Summary: finalStep gets called twice in case of a statemachine with a single state
                 Key: SCXML-205
                 URL: https://issues.apache.org/jira/browse/SCXML-205
             Project: Commons SCXML
          Issue Type: Bug
    Affects Versions: 2.0
            Reporter: Johannes Wienke
            Priority: Critical


In case of a statemachine that consists of only one state, the actions defined on this state get called twice. The following scxml explains the problem:

{code:xml}
<scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" initial="Start" name="PublishEvent">
  <final id="Start">
    <onentry>
      <log expr="'Entering state Start'"></log>
    </onentry>
    <onexit>
      <log expr="'Leaving state Start'"></log>
    </onexit>
  </final>
</scxml>
{code}

Both log messages appear twice when running this example.

I digged a bit in the source code and through a debugger I could find the cause for this effect: The finalStep method of SCXMLSemanticsImpl gets called twice. One backtrace looks like this:

{noformat}
SCXMLSemanticsImpl.finalStep(SCXMLExecutionContext) line: 215	
SCXMLSemanticsImpl.firstStep(SCXMLExecutionContext) line: 132	
SCXMLExecutor.reset() line: 331	
SCXMLExecutor.go() line: 318	
{noformat}

and the seconds looks like this:

{noformat}
SCXMLSemanticsImpl.finalStep(SCXMLExecutionContext) line: 215	
SCXMLExecutor.reset() line: 334	
SCXMLExecutor.go() line: 318	
{noformat}

I am not sure about what should be the correct behavior, but to my mind, the second call looks suspicious.



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