You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Ingmar Kliche (JIRA)" <ji...@apache.org> on 2007/07/27 23:27:53 UTC

[jira] Updated: (SCXML-52) Error on resolving conflicting transitions for compound states

     [ https://issues.apache.org/jira/browse/SCXML-52?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ingmar Kliche updated SCXML-52:
-------------------------------


Here is a short test case:

// Uses SCXMLParser (latest WD)
public void testSCXMLExecutorTransitions05Sample() {
        SCXML scxml = SCXMLTestHelper.parse(transitions05);
        assertNotNull(scxml);
        exec = SCXMLTestHelper.getExecutor(scxml);
        assertNotNull(exec);
        try {
            Set currentStates = SCXMLTestHelper.fireEvent(exec, "event_2");
            assertEquals(1, currentStates.size());

            currentStates = SCXMLTestHelper.fireEvent(exec, "event_1");
            assertEquals(1, currentStates.size());

        } catch (Exception e) {
            fail(e.getMessage());
        }
    }

Don't know if this is the right way to test it, but at least it shows that for event_1 the state machine is not in one state anymore (the list is empty).

> Error on resolving conflicting transitions for compound states
> --------------------------------------------------------------
>
>                 Key: SCXML-52
>                 URL: https://issues.apache.org/jira/browse/SCXML-52
>             Project: Commons SCXML
>          Issue Type: Bug
>    Affects Versions: 0.6
>            Reporter: Ingmar Kliche
>
> There seems to be a problem on the resolution of conflicting transitions for compound states. See the following scxml document:
> <scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" initialstate="s1">
>     <datamodel>
>         <data name="x"/>
>     </datamodel>
>     
>     <state id="s1">
>         <initial>
>             <transition target="s11"/>
>         </initial>
>         
>         <transition event="event_1">
>             <assign name="x"  expr="'s1'"/>
>         </transition>
>        
>        <transition event="event_2" target="s1">
>             <assign name="x"  expr="'s1'"/>
>         </transition>
>         
>         <state id="s11">
>             <transition event="event_1">
>                        <assign name="x"  expr="'s11'"/>
>             </transition>
>            <transition event="event_2" target="s11">
>                        <assign name="x"  expr="'s11'"/>
>             </transition>
>         </state>
>     </state>
>     
>     <state id="s2" final="true" />
> </scxml>
> The state machine enters a compound state s1 which contains another state s11 as its intitial state. Both states have transitions on event_1 and event_2. Note that event_1 has no target, whereas event_2 has a target towards the same state.
> For event_2 everything works as expected, i.e. only the transition on state s11 is executed and therefor s11 is reentered (I have a listener in my environment and can monitor this). 
> The error occurs at event_1. On event_1 both transitions of s1 _and_ s11 are executed - but only once. After this, the state machine gets stuck (in particular the currentStates-List is empty). Any subsequent event will not cause any further action.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org