error in tasks-nodes
pedrosacosta Nov 21, 2005 9:43 AMthis following code gives me an error leaving the task-node tn2. I don't understand what's wrong. I've checked and rechecked the code many times, and can't see what is the error.
import org.jbpm.graph.def.ProcessDefinition; import org.jbpm.graph.exe.ProcessInstance; import org.jbpm.graph.exe.Token; import org.jbpm.taskmgmt.exe.TaskInstance; public class TaskAssignmentTest { public void testTaskAssignment() { ProcessDefinition processDefinition = ProcessDefinition.parseXmlString( "<process-definition name='the baby process'>" + " <start-state>" + " <transition name='to_tn1' to='tn1' />" + " </start-state>" + " <task-node name='tn1'>" + " <task name='t1'>" + " </task>" + " <transition name='to_state1' to='state1' />" + " </task-node>" + " <state name='state1'>" + " <transition name='to_tn2' to='tn2' />" + " </state>" + " <task-node name='tn2'>" + " <task name='t2'>" + " </task>" + " <transition name='to_tn3' to='tn3' />" + " </task-node>" + " <task-node name='tn3'>" + " <task name='t3'>" + " </task>" + " <transition name='to_end' to='end' />" + " </task-node>" + " <end-state name='end' />" + "</process-definition>" ); System.out.println(processDefinition.toString()); ProcessInstance processInstance = new ProcessInstance(processDefinition); Token token = processInstance.getRootToken(); token.signal(); TaskInstance taskInstance = null; //TN1 taskInstance = (TaskInstance)processInstance.getTaskMgmtInstance().getTaskInstances().iterator().next(); System.out.println("---> " + token.getNode().getName()); taskInstance.end("to_state1"); //taskInstance.end(); //STATE1 System.out.println(">>---> " + token.getNode().getName()); token.signal(); //TN2 taskInstance = (TaskInstance)processInstance.getTaskMgmtInstance().getTaskInstances().iterator().next(); System.out.println("---> " + token.getNode().getName()); taskInstance.end("to_tn3"); //TN3 taskInstance = (TaskInstance)processInstance.getTaskMgmtInstance().getTaskInstances().iterator().next(); System.out.println("---> " + token.getNode().getName()); processInstance.end(); } public static void main(String[] args){ System.out.println("MAIN"); TaskAssignmentTest tat = new TaskAssignmentTest(); tat.testTaskAssignment(); } }
MAIN ProcessDefinition(the baby process) ---> tn1 >>---> state1 ---> tn2 log4j:WARN No appenders could be found for logger (org.jbpm.jpdl.xml.JpdlXmlReader). log4j:WARN Please initialize the log4j system properly. java.lang.NullPointerException: task node does not have leaving transition 'to_tn3' at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:290) at com.sample.jbpm.taskmgmt.TaskAssignmentTest.testTaskAssignment(TaskAssignmentTest.java:68) at com.sample.jbpm.taskmgmt.TaskAssignmentTest.main(TaskAssignmentTest.java:79) Exception in thread "main"