Please discuss before filing JIRA tickets (unless you are fairly
confident of a bug in the codebase). I've closed SCXML-42 [1] and
SCXML-43 [2], we can reopen one of them if this is indeed a problem
that needs to be fixed (doesn't seem like that at first glance).

I've inlined my response below:

On 4/12/07, Rajendran, John Tom (STSD) <[EMAIL PROTECTED]> wrote:
Hi there,
While implementing the parallelism in SCXML we are encountering an
exception which I am attaching herewith. Is there any work around for
this.

<snip-top-of-log/>

2007-04-12 11:52:45,109 WARN
[org.apache.commons.scxml.env.SimpleErrorReporter] NON_DETERMINISTIC
(Multiple conflicting transitions enabled.):  [transition (event =
CreateATaskEvent, cond = _eventdata.slotAvailable=true, from =
/testMain/null/slotState/MSlotInitState, to =
/testMain/null/slotState/MSlotHeldState.aquireSlot), transition (event =
CreateATaskEvent, cond = !_eventdata.slotAvailable, from =
/testMain/null/slotState/MSlotInitState, to =
/testMain/null/slotState/MSlotQueuedState.queueSlot), transition (event
= CreateATaskEvent, cond = _eventdata.slotavailable=true, from =
/testMain/null/slotState/MSlotInitState, to =
/testMain/null/slotState/MSlotLockedState.lockSlot)]
2007-04-12 11:52:45,109 WARN
[org.apache.commons.scxml.env.SimpleErrorReporter] ILLEGAL_CONFIG
(Multiple OR states active for state slotState):
/testMain/null/slotState :
[/testMain/null/slotState/MSlotHeldState.aquireSlot,
/testMain/null/slotState/MSlotQueuedState.queueSlot,
/testMain/null/slotState/MSlotLockedState.lockSlot]
2007-04-12 11:52:45,109 ERROR [com.hp.m.msched.core.MSlotTaskFSM]
Illegal state machine configuration!
org.apache.commons.scxml.model.ModelException: Illegal state machine
configuration!

<snip-trace/>

As indicated in the messages above, this state machine has reached an
error condition (non-determinism) due to multiple candidate
transitions being followed, each leading to states which do not belong
to individual regions of the same parallel.

This usually happens due to one of two reasons:

* The model itself is flawed (hence the SCXML description can lead to
non-determinism)
* The expressions representing the guard conditions are not doing
what the author intends

I suspect the latter in this case. It looks like you are using JEXL as
the expression language, in which case this fragment that you posted
to SCXML-43 [2] seems to be a problem:

   <transition event="CreateATaskEvent"

cond="_eventdata.slotAvailable=true"

target="MSlotHeldState.aquireSlot" />
   <transition event="CreateATaskEvent"

cond="_eventdata.slotavailable=true"

target="MSlotLockedState.lockSlot"/>
   <transition event="CreateATaskEvent"

cond="!_eventdata.slotAvailable"

target="MSlotQueuedState.queueSlot" />

The first two transitions seem to have the same guard (perhaps, the
casing of 'slotavailable' is different, maybe thats a typo). Moreover
you are using assignment (=) rather than equality (==). I generally
recommend using the 'eq' operator in JEXL rather than = signs anyway.
Try correcting those bits, providing mutually exclusive guards (as the
model you attached to JIRA seems to have), and see if it fixes the
behavior. For reference, the JEXL syntax is here [3].

As an aside, in the next release of Commons SCXML, non-determinism
will be resolved by document order preference as indicated in the
latest version of the W3C SCXML Working Draft.

-Rahul

[1] http://issues.apache.org/jira/browse/SCXML-42
[2] http://issues.apache.org/jira/browse/SCXML-43
[3] http://jakarta.apache.org/commons/jexl/reference/syntax.html

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

  • SCXML error Rajendran, John Tom (STSD)
    • Re: SCXML error Rahul Akolkar

Reply via email to