Fork/Join Problem
freak182 May 28, 2009 1:42 AMHello,
I've stuck with this for more than a week. here is my process def:
<?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="" name="forktest"> <description> a test for fork/join workflow </description> <start-state name="Start"> <transition to="fork"></transition> </start-state> <fork name="fork"> <transition to="approver A" name="fk1"></transition> <transition to="approver B" name="fk2"></transition> </fork> <task-node name="approver A"> <task name="FORKAPPRVA"> <description> Please approve A </description> <assignment class="com.ccti.los.WfAssignment"> <pooledactors> CORBANK </pooledactors> </assignment> </task> <transition to="join" name="jn1"></transition> </task-node> <task-node name="approver B"> <task name="FORKAPPRVB"> <description> Please approve B </description> <assignment class="com.ccti.los.WfAssignment"> <pooledactors> APPROVERS </pooledactors> </assignment> </task> <transition to="join" name="jn2"></transition> </task-node> <join name="join"> <event type="node-enter"> <script name="joinscript"> System.out.println("join: node enter events"); </script> </event> <event type="node-leave"> <script name="nodeleavescript"> System.out.println("join: leaving join"); </script> </event> <transition to="Review Document"></transition> </join> <task-node name="Review Document"> <task name="FORKREVDOC"> <description> Document for review </description> <assignment class="com.ccti.los.WfAssignment"> <pooledactors> CORBANK </pooledactors> </assignment> </task> <event type="node-enter"> <script name="revscript"> System.out.println("Entering review doc task"); </script> </event> <transition to="End"></transition> </task-node> <end-state name="End"></end-state> </process-definition>
and here some trace:
taskInstanceId = 30 path Id = 16-@fk1 13:28:21,718 DEBUG - JbpmContextInfo - creating jbpm context with service factories '[message, tx, scheduler, authentication, persistence, logging]' 13:28:21,718 DEBUG - JbpmContext - creating org.jbpm.JbpmContext@1bdffcb 13:28:21,718 DEBUG - bPersistenceServiceFactory - creating persistence service 13:28:21,718 DEBUG - DbPersistenceService - injecting a session disables transaction 13:28:21,734 DEBUG - GraphElement - event 'before-signal' on 'TaskNode(approver A)' for 'Token(/fk1)' 13:28:21,750 DEBUG - GraphElement - event 'node-leave' on 'TaskNode(approver A)' for 'Token(/fk1)' 13:28:21,750 DEBUG - GraphElement - event 'transition' on 'Transition(jn1)' for 'Token(/fk1)' 13:28:21,750 DEBUG - GraphElement - event 'node-enter' on 'Join(join)' for 'Token(/fk1)' 13:28:21,750 WARN - ProxyWarnLog - Narrowing proxy to class org.jbpm.graph.node.Join - this operation breaks == 13:28:21,765 DEBUG - GraphElement - executing action 'action[joinscript]' 13:28:21,765 DEBUG - Token - token[38] is locked by token[38] 13:28:21,781 DEBUG - Script - script input: {node=Join(join), token=Token(/fk1), task=null, executionContext=ExecutionContext[Token(/fk1)], taskInstance=null} join: node enter events 13:28:21,875 DEBUG - Script - script output: {} 13:28:21,875 DEBUG - Token - token[38] is unlocked by token[38] 13:28:21,875 DEBUG - Join - acquiring FORCE lock on Token(/) 13:28:21,890 DEBUG - Join - join will not yet reactivate parent: found concurrent token 'Token(/fk2)' 13:28:21,890 DEBUG - GraphElement - event 'after-signal' on 'TaskNode(approver A)' for 'Token(/fk1)' 13:28:21,890 DEBUG - Services - executing default save operations 13:28:21,890 DEBUG - HibernateSaveOperation - saving process instance 13:28:21,890 DEBUG - SaveLogsOperation - flushing logs to logging service. 13:28:21,937 DEBUG - CascadeSaveOperation - cascading save of 'ProcessInstance(c8853452-9330-490c-91d6-ac42f8a40a96)' 13:28:21,937 DEBUG - JbpmContext - closing jbpmContext org.jbpm.JbpmContext@1bdffcb 13:28:21,937 DEBUG - Services - closing service 'logging': org.jbpm.logging.db.DbLoggingService@800a9e 13:28:21,937 DEBUG - Services - closing service 'persistence': org.jbpm.persistence.db.DbPersistenceService@392c27 13:28:21,937 DEBUG - Services - closing service 'tx': org.jbpm.tx.TxService@181bfd7 taskInstanceId = 29 path Id = 16-@fk2 13:29:41,484 DEBUG - JbpmContextInfo - creating jbpm context with service factories '[message, tx, scheduler, authentication, persistence, logging]' 13:29:41,484 DEBUG - JbpmContext - creating org.jbpm.JbpmContext@1f4bcdb 13:29:41,484 DEBUG - bPersistenceServiceFactory - creating persistence service 13:29:41,484 DEBUG - DbPersistenceService - injecting a session disables transaction 13:29:41,500 DEBUG - GraphElement - event 'before-signal' on 'TaskNode(approver B)' for 'Token(/fk2)' 13:29:41,515 DEBUG - GraphElement - event 'node-leave' on 'TaskNode(approver B)' for 'Token(/fk2)' 13:29:41,515 DEBUG - GraphElement - event 'transition' on 'Transition(jn2)' for 'Token(/fk2)' 13:29:41,515 DEBUG - GraphElement - event 'node-enter' on 'Join(join)' for 'Token(/fk2)' 13:29:41,515 WARN - ProxyWarnLog - Narrowing proxy to class org.jbpm.graph.node.Join - this operation breaks == 13:29:41,515 DEBUG - GraphElement - executing action 'action[joinscript]' 13:29:41,515 DEBUG - Token - token[37] is locked by token[37] 13:29:41,515 DEBUG - Script - script input: {node=Join(join), token=Token(/fk2), task=null, executionContext=ExecutionContext[Token(/fk2)], taskInstance=null} join: node enter events 13:29:41,531 DEBUG - Script - script output: {} 13:29:41,531 DEBUG - Token - token[37] is unlocked by token[37] 13:29:41,531 DEBUG - Join - acquiring FORCE lock on Token(/) 13:29:41,546 DEBUG - Join - join will not yet reactivate parent: found concurrent token 'Token(/fk1)' 13:29:41,546 DEBUG - GraphElement - event 'after-signal' on 'TaskNode(approver B)' for 'Token(/fk2)' 13:29:41,546 DEBUG - Services - executing default save operations 13:29:41,546 DEBUG - HibernateSaveOperation - saving process instance 13:29:41,546 DEBUG - SaveLogsOperation - flushing logs to logging service. 13:29:41,562 DEBUG - CascadeSaveOperation - cascading save of 'ProcessInstance(c8853452-9330-490c-91d6-ac42f8a40a96)' 13:29:41,562 DEBUG - JbpmContext - closing jbpmContext org.jbpm.JbpmContext@1f4bcdb 13:29:41,562 DEBUG - Services - closing service 'logging': org.jbpm.logging.db.DbLoggingService@7ad4d5 13:29:41,562 DEBUG - Services - closing service 'persistence': org.jbpm.persistence.db.DbPersistenceService@2aee3f 13:29:41,562 DEBUG - Services - closing service 'tx': org.jbpm.tx.TxService@7f788b
I already read some related topics here in forum but no luck to solve my problem. And seems that how much i try modify my definition still it wont work. Still stuck on join and the task before join is not ended.
Thanks a lot.
Cheers.