My process is a fork with two task nodes and a join. 

I trigger the process to start both tasks and then end each of them. 
During the execution of end() on task 1, the task is being submitted and then 
immediately re-instantiated. So when the token is at the join, I still have a 
freshly created task 1 pending in the actor's queue.
 
Also, it seems like though 'task-end' is called on the child token, the root 
token proceeds with 'node-enter' on the same task.

Here's the process definition:


  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <process-definition  xmlns=""  name="parallel.two.sequential.one">
  |     
  |         <swimlane name="...">
  | ....
  |     </swimlane>
  | 
  |     <start-state name="start">
  |             <transition to="fork1"></transition>
  |     </start-state>
  | 
  |     <fork name="fork1">
  |             <transition to="task-node1" name="to-task-1"></transition>
  |             <transition to="task-node2" name="to-task-2"></transition>
  |     </fork>
  | 
  |     <join name="join1">
  |             <transition to="task-node3"></transition>
  |     </join>
  | <task-node name="task-node1" >
  |             <task swimlane="..." name="Task 1" notify="true">
  |                     <controller class="..."/>
  |             </task>
  |             <transition to="join1" name="to-the-end"></transition>
  |     </task-node>
  | 
  |     <task-node name="task-node2">
  |             <task swimlane="..." name="Task 2" notify="true">
  |                     <controller class="..."/>
  |             </task>
  |             <transition to="join1" name="to-the-end"></transition>
  |     </task-node>
  |     
  |     <end-state name="end"></end-state>
  | </process-definition>


Here's the snippet of the execution:

  | 
  | ProcessInstance processInstance = new ProcessInstance(processDefinition);
  |     
  | Token token = processInstance.getRootToken();
  | assertEquals("start", token.getNode().getName());
  |     
  | token.signal();
  |             
  | Map<String, Token> childTokens = token.getActiveChildren();
  | assertTrue(childTokens.size() > 0);
  | 
  | final Iterator<Token> iterator = childTokens.values().iterator();
  | Token oneBranchToken = iterator.next();
  | TaskMgmtInstance taskManagementInstance = oneBranchToken 
.getProcessInstance().getTaskMgmtInstance();
  | Collection<TaskInstance> taskInstances = 
  |                                                     
taskManagementInstance.getUnfinishedTasks(oneBranchToken );
  | TaskInstance taskInstance = taskInstances.iterator().next();
  | taskInstance.end();
  | 
  | jbpmContext.save(processInstance);
  | 

Here's the debug log snippet that shows task 1 being submitted and then 
immediately initialized again:

08:48:11,091 DEBUG|main|: [GraphElement:fireEvent:179] event 'after-signal' on 
StartState(start) for Token(/)
08:48:11,091 DEBUG|main|: [GraphElement:fireEvent:179] event 'task-end' on 
Task(Task 1) for Token(/to-task-1)
08:48:11,091 DEBUG|main|: [Controller:submitTaskVariables:23] 
-------------current node::Task 1
08:48:11,091 DEBUG|main|: [GraphElement:fireEvent:179] event 'before-signal' on 
Fork(fork1) for Token(/)
08:48:11,091 DEBUG|main|: [GraphElement:fireEvent:179] event 'node-leave' on 
Fork(fork1) for Token(/)
08:48:11,091 DEBUG|main|: [GraphElement:fireEvent:179] event 'transition' on 
Transition(to-task-1) for Token(/)
08:48:11,091 DEBUG|main|: [GraphElement:fireEvent:179] event 'node-enter' on 
TaskNode(task-node1) for Token(/)
08:48:11,107 DEBUG|main|: [Controller:initializeTaskVariables:17] 
-------------current node::Task 1
08:48:11,107 DEBUG|main|: [GraphElement:fireEvent:179] event 'task-create' on 
Task(Task 1) for Token(/)
08:48:11,107 DEBUG|main|: [TaskInstance:setActorId:258] assigning task 'Task 1' 
to 'analyst'
08:48:11,107 DEBUG|main|: [GraphElement:fireEvent:179] event 'task-assign' on 
Task(Task 1) for Token(/)
08:48:11,107 DEBUG|main|: [GraphElement:executeAction:271] executing 
Action(Task 1)
08:48:11,107 DEBUG|main|: [Token:lock:748] token[2489] is locked by token[2489]
08:48:11,107 DEBUG|main|: [Mail:send:189] skipping mail because there are no 
recipients
08:48:11,122 DEBUG|main|: [Token:unlock:765] token[2489] is unlocked by 
token[2489]


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

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

Reply via email to