Decision node has problem with the handler class.
rainhust Jan 2, 2008 3:04 AMthe jpdl:
<task-node name="chief examine"> <description> ?????? </description> <task name="chief examine"> <description> ???? </description> <assignment class="demo.workflow.assignment.ChiefAssignment"></assignment> <controller> <variable access="read" name="reimbursementId" mapped-name="rid"></variable> </controller> </task> <transition to="requester fix the reimbursement form" name="need modify form"></transition> <transition to="decision" name="to result"></transition> </task-node> <decision name="decision"> <description> ???? </description> <handler class="demo.workflow.action.DecisionProcess"></handler> <transition to="handle result" name="to result"></transition> <transition to="boss examine" name="to boss examine"></transition> <transition to="financial affairs process" name="to financial affairs process"></transition> </decision>
use this code to end the taskInstance:
public static void main(String[] args) { JbpmConfiguration config=JbpmConfiguration.getInstance(); JbpmContext jbpmContext=config.createJbpmContext(); TaskInstance ti = jbpmContext.getTaskInstance(18); ti.end("to result"); // this will go to the Decision node,cause exception //ti.end("need modify form"); // if use this test, everything is ok. jbpmContext.close(); }
when the process go to the Decision node , cause error.
15:56:21,764 [main] DEBUG Token : token[9] is unlocked by token[9] 15:56:21,780 [main] ERROR GraphElement : action threw exception: id to load is required for loading java.lang.IllegalArgumentException: id to load is required for loading at org.hibernate.event.LoadEvent.<init>(LoadEvent.java:51) at org.hibernate.event.LoadEvent.<init>(LoadEvent.java:33) at org.hibernate.impl.SessionImpl.get(SessionImpl.java:812) at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808) at demo.workflow.action.ProcessResultAction.execute(ProcessResultAction.java:24) at org.jbpm.graph.def.Action.execute(Action.java:122) at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:264) at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:220) at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:190) at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:174) at org.jbpm.graph.def.Node.enter(Node.java:303) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157) at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$42da374e.enter(<generated>) at org.jbpm.graph.def.Transition.take(Transition.java:151) at org.jbpm.graph.def.Node.leave(Node.java:394) 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:319) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157) at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$42da374e.enter(<generated>) at org.jbpm.graph.def.Transition.take(Transition.java:151) at org.jbpm.graph.def.Node.leave(Node.java:394) at org.jbpm.graph.node.TaskNode.leave(TaskNode.java:209) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157) at org.jbpm.graph.node.TaskNode$$EnhancerByCGLIB$$7edde70c.leave(<generated>) at org.jbpm.graph.exe.Token.signal(Token.java:195) at org.jbpm.graph.exe.Token.signal(Token.java:166) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157) at org.jbpm.graph.exe.Token$$EnhancerByCGLIB$$7233a4ca.signal(<generated>) at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:488) at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:427) at com.hundsun.bpm.console.Test.main(Test.java:20) Exception in thread "main" org.jbpm.graph.def.DelegationException: id to load is required for loading at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:387) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157) at org.jbpm.graph.def.ProcessDefinition$$EnhancerByCGLIB$$fe0fb99e.raiseException(<generated>) at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:378) at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:281) at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:220) at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:190) at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:174) at org.jbpm.graph.def.Node.enter(Node.java:303) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157) at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$42da374e.enter(<generated>) at org.jbpm.graph.def.Transition.take(Transition.java:151) at org.jbpm.graph.def.Node.leave(Node.java:394) 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:319) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157) at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$42da374e.enter(<generated>) at org.jbpm.graph.def.Transition.take(Transition.java:151) at org.jbpm.graph.def.Node.leave(Node.java:394) at org.jbpm.graph.node.TaskNode.leave(TaskNode.java:209) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157) at org.jbpm.graph.node.TaskNode$$EnhancerByCGLIB$$7edde70c.leave(<generated>) at org.jbpm.graph.exe.Token.signal(Token.java:195) at org.jbpm.graph.exe.Token.signal(Token.java:166) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157) at org.jbpm.graph.exe.Token$$EnhancerByCGLIB$$7233a4ca.signal(<generated>) at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:488) at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:427) at com.hundsun.bpm.console.Test.main(Test.java:20) Caused by: java.lang.IllegalArgumentException: id to load is required for loading at org.hibernate.event.LoadEvent.<init>(LoadEvent.java:51) at org.hibernate.event.LoadEvent.<init>(LoadEvent.java:33) at org.hibernate.impl.SessionImpl.get(SessionImpl.java:812) at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808) at demo.workflow.action.ProcessResultAction.execute(ProcessResultAction.java:24) at org.jbpm.graph.def.Action.execute(Action.java:122) at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:264) ... 41 more
how to solve this problem: id to load is required for loading.
any suggestion! thanks.