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)