I have a process definition has the following scenario:
- node 1, performs an action which calls executionContext.leaveNode() when done.

- This does a default transition to a ProcessState, which has several nodes in 
it.  All of their action handlers perform similarly to node 1.

- Upon completion of the subprocess, The ProcessState then makes a default 
transition to another node whose action handler is again similar to node 1, and 
makes a default transition to the end-state.

In 3.2-GA, this works without any difficulties, but in 3.2.1 it throws an 
exception saying that the current token is locked.  Is this a bug or expected 
behavior?  I don't have enough understanding of the purpose of token locking to 
really see how to change my code to work with it.

Below is the log output.  Thanks in advance for any help!



[DEBUG] [GraphElement] - event 'before-signal' on 'StartState(start)' for 
'Token(/)'
[DEBUG] [GraphElement] - event 'node-leave' on 'StartState(start)' for 
'Token(/)'
[DEBUG] [GraphElement] - event 'transition' on 'Transition()' for 'Token(/)'
[DEBUG] [GraphElement] - event 'node-enter' on 'Node(node 1)' for 'Token(/)'
[DEBUG] [GraphElement] - executing action 'Action(a6af6e)'
[DEBUG] [Token] - token[0] is locked by token[0]
[DEBUG] [GraphElement] - event 'node-leave' on 'Node(node 1)' for 'Token(/)'
[DEBUG] [GraphElement] - event 'transition' on 'Transition()' for 'Token(/)'
[DEBUG] [GraphElement] - event 'node-enter' on 'ProcessState(processState)' for 
'Token(/)'
[DEBUG] [GraphElement] - event 'process-start' on 
'ProcessDefinition(processState)' for 'Token(/)'
[DEBUG] [GraphElement] - event 'subprocess-created' on 
'ProcessState(processState)' for 'Token(/)'
[DEBUG] [GraphElement] - event 'before-signal' on 'StartState(start)' for 
'Token(/)'
[DEBUG] [GraphElement] - event 'node-leave' on 'StartState(start)' for 
'Token(/)'
[DEBUG] [GraphElement] - event 'transition' on 'Transition()' for 'Token(/)'
[DEBUG] [GraphElement] - event 'node-enter' on 'Node(myServiceNode)' for 
'Token(/)'
[DEBUG] [GraphElement] - executing action 'Action(5db5ae)'
[DEBUG] [Token] - token[0] is locked by token[0]
[DEBUG] [processStateHandler] - Handle calling processState service
[DEBUG] [GraphElement] - event 'node-leave' on 'Node(myServiceNode)' for 
'Token(/)'
[DEBUG] [GraphElement] - event 'transition' on 'Transition()' for 'Token(/)'
[DEBUG] [GraphElement] - event 'node-enter' on 
'Decision(postprocessStateDecision)' for 'Token(/)'
[DEBUG] [PostprocessStateDecisionHandler] - call processState decision handler
[DEBUG] [Decision] - decision postprocessStateDecision is taking 
'Transition(end)'
[DEBUG] [GraphElement] - event 'node-leave' on 
'Decision(postprocessStateDecision)' for 'Token(/)'
[DEBUG] [GraphElement] - event 'transition' on 'Transition(end)' for 'Token(/)'
[DEBUG] [GraphElement] - event 'node-enter' on 'EndState(end1)' for 'Token(/)'
[DEBUG] [GraphElement] - event 'process-end' on 
'ProcessDefinition(processState)' for 'Token(/)'
[DEBUG] [Token] - token[0] is unlocked by token[0]
[ERROR] [GraphElement] - action threw exception: this token is locked by 
token[0]
org.jbpm.JbpmException: this token is locked by token[0]
        at org.jbpm.graph.exe.Token.signal(Token.java:184)
        at org.jbpm.graph.exe.Token.signal(Token.java:170)
        at org.jbpm.graph.exe.ProcessInstance.end(ProcessInstance.java:322)
        at org.jbpm.graph.exe.Token.notifyParentOfTokenEnd(Token.java:331)
        at org.jbpm.graph.exe.Token.end(Token.java:303)
        at org.jbpm.graph.exe.Token.end(Token.java:253)
        at org.jbpm.graph.node.EndState.execute(EndState.java:59)
        at org.jbpm.graph.def.Node.enter(Node.java:318)
        at org.jbpm.graph.def.Transition.take(Transition.java:151)
        at org.jbpm.graph.def.Node.leave(Node.java:393)
        at 
org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:136)
        at org.jbpm.graph.node.Decision.execute(Decision.java:152)
        at org.jbpm.graph.def.Node.enter(Node.java:318)
        at org.jbpm.graph.def.Transition.take(Transition.java:151)
        at org.jbpm.graph.def.Node.leave(Node.java:393)
        at org.jbpm.graph.def.Node.leave(Node.java:357)
        at 
org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:120)
        at 
com.xxx.ExecuteAndTransitionActionHandler.execute(ExecuteAndTransitionActionHandler.java:49)
        at org.jbpm.graph.def.Action.execute(Action.java:122)
        at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:255)
        at org.jbpm.graph.def.Node.execute(Node.java:338)
        at org.jbpm.graph.def.Node.enter(Node.java:318)
        at org.jbpm.graph.def.Transition.take(Transition.java:151)
        at org.jbpm.graph.def.Node.leave(Node.java:393)
        at org.jbpm.graph.node.StartState.leave(StartState.java:70)
        at org.jbpm.graph.exe.Token.signal(Token.java:194)
        at org.jbpm.graph.exe.Token.signal(Token.java:139)
        at org.jbpm.graph.exe.ProcessInstance.signal(ProcessInstance.java:270)
        at org.jbpm.graph.node.ProcessState.execute(ProcessState.java:189)
        at org.jbpm.graph.def.Node.enter(Node.java:318)
        at org.jbpm.graph.def.Transition.take(Transition.java:151)
        at org.jbpm.graph.def.Node.leave(Node.java:393)
        at org.jbpm.graph.def.Node.leave(Node.java:357)
        at 
org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:120)
        at 
com.xxx.ExecuteAndTransitionActionHandler.execute(ExecuteAndTransitionActionHandler.java:49)
        at org.jbpm.graph.def.Action.execute(Action.java:122)
        at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:255)
        at org.jbpm.graph.def.Node.execute(Node.java:338)
        at org.jbpm.graph.def.Node.enter(Node.java:318)
        at org.jbpm.graph.def.Transition.take(Transition.java:151)
        at org.jbpm.graph.def.Node.leave(Node.java:393)
        at org.jbpm.graph.node.StartState.leave(StartState.java:70)
        at org.jbpm.graph.exe.Token.signal(Token.java:194)
        at org.jbpm.graph.exe.Token.signal(Token.java:139)
        at org.jbpm.graph.exe.ProcessInstance.signal(ProcessInstance.java:270)
        at 
com.xxx.BaseWorkflowTestCase.initializeWorkflowManager(BaseWorkflowTestCase.java:73)
        at com.xxx.BaseWorkflowTestCase.setUp(BaseWorkflowTestCase.java:56)

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4064167#4064167

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4064167
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to