jbeard4 / SCION

SCXML/Statecharts in JavaScript, moved to gitlab: https://gitlab.com/scion-scxml/scion
https://scion.scxml.io
Apache License 2.0
149 stars 29 forks source link

SCXML file stuck in state $generated-initial-0 #319

Closed jbeard4 closed 9 years ago

jbeard4 commented 9 years ago

Try this example chart:

<scxml xmlns="http://www.w3.org/2005/07/scxml"
  version="1.0">

<datamodel>
  <data id="basichttp_uri" expr="'http://www.w3.org/TR/scxml/#BasicHTTPEventProcessor'"/>
</datamodel>

<initial>
    <transition target="s1"/>
</initial>

<state id="s1">
  <onentry>
    <log expr="'Starting session ' + _sessionid" label="TEST"/>
    <log expr="'_x.url=' + _x.url" label="TEST"/>
  </onentry>
  <transition event="ev1" target="pass"/>
</state>

<final id="pass">
  <onentry>
    <log expr="'RESULT: pass'" label="TEST"/>
  </onentry>
</final>

<final id="fail">
  <onentry>
    <log expr="'RESULT: fail'" label="TEST"/>
  </onentry>
</final>

</scxml>

Also try this chart:

<scxml xmlns="http://www.w3.org/2005/07/scxml"
  version="1.0"
  initial="s1">

<datamodel>
  <data id="basichttp_uri" expr="'http://www.w3.org/TR/scxml/#BasicHTTPEventProcessor'"/>
</datamodel>

<state id="s1">
  <onentry>
    <log expr="'Starting session ' + _sessionid" label="TEST"/>
    <log expr="'_x.url=' + _x.url" label="TEST"/>
  </onentry>
  <transition event="ev1" target="pass"/>
</state>

<final id="pass">
  <onentry>
    <log expr="'RESULT: pass'" label="TEST"/>
  </onentry>
</final>

<final id="fail">
  <onentry>
    <log expr="'RESULT: fail'" label="TEST"/>
  </onentry>
</final>

</scxml>

We never exit $generated-state-0

2015-01-19 11:26:10.085 FSM: INFO exiting state $generated-initial-0 [sid=a037aed7-cdf9-43d8-aaec-37bf899a6665]
2015-01-19 11:26:10.086 FSM: INFO transitioning from $generated-initial-0 to $generated-state-0 [sid=a037aed7-cdf9-43d8-aaec-37bf899a6665]
2015-01-19 11:26:10.086 FSM: INFO entering state $generated-state-0 [sid=a037aed7-cdf9-43d8-aaec-37bf899a6665]
mattoshry commented 9 years ago

Jacob pointed out to me that according to the latest draft of SCXML [1], <initial> is not a valid child of <scxml>. But in addition to the failing initial attribute case the machine also seems stuck in a generated state when an initial attribute is not specified.

[1] http://www.w3.org/TR/scxml/#scxml

jbeard4 commented 9 years ago

This was related to breaking API change in https://github.com/jbeard4/SCION/issues/301 This has now been fixed in https://github.com/jbeard4/SCION/pull/314