-
Bug
-
Resolution: Done
-
P2: Important
-
5.4.1
-
None
-
Any
-
e616bd2641b9cf6a18cabeae3f9c425f91bfc4b3
Consider this state machine:
<parallel id="a">
<history id="ha" type="deep"/>
<parallel id="b">
<parallel id="c">
<parallel id="d">
<parallel id="e">
<state id="i" initial="i1">
<state id="i1">
<transition target="i2" event="t1"/>
</state>
<state id="i2">
<transition target="l" event="t2"/>
</state>
</state>
<state id="j"/>
</parallel>
<state id="h"/>
</parallel>
<state id="g"/>
</parallel>
</parallel>
<state id="k"/>
</parallel>
<state id="l">
<transition target="ha" event="t3"/>
</state>
Then send it the events t1, t2, and t3. The following happens:
initial configuration: i1, j, h, g, k send event t1 next configuration: i2, j, h, g, k send event t2 next configuration: l send event t3 expected configuration: i2, j, h, g, k actual configuration: g, h, i1, i2, j, k
The history state will restore i2, then see that it has to activate compound state i and enters those too. The problem is that it then decides that it needs to activate the default sub state for the compound state, which results in a conflict: both i1 and i2 are active.