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]