[jboss-user] [JBoss jBPM] - Error in leaveNode and SubProcess

jurna do-not-reply at jboss.com
Mon Feb 4 01:51:36 EST 2008


I'm having strange error while using sub proces and leaveNode in actions. Here is simplified example.
Main process definition:

  | <?xml version="1.0" encoding="UTF-8"?>
  | <process-definition name="testParent">
  | 	<start-state name="start">
  | 		<transition to="state"/>
  | 	</start-state>
  | 	<state name="state">
  | 		<event type="node-enter">
  | 			<action class="org.mule.providers.bpm.jbpm.actions.Continue"/>
  | 		</event>
  | 		<transition to="subProcess"/>
  | 	</state>
  | 	<process-state name="subProcess">
  | 		<sub-process name="testSubProcess"/>
  | 		<transition to="end"/>
  | 	</process-state>
  | 	<end-state name="end"/>
  | </process-definition>
  | 
Sub process definition:

  | <?xml version="1.0" encoding="UTF-8"?>
  | <process-definition name="testSubProcess">
  | 	<start-state name="start">
  | 		<transition to="testState"/>
  | 	</start-state>
  | 	<state name="testState">
  | 		<event type="node-enter">
  | 			<action class="org.mule.providers.bpm.jbpm.actions.Continue"/>
  | 		</event>
  | 		<transition to="end"/>
  | 	</state>
  | 	<end-state name="end"/>
  | </process-definition>
  | 
org.mule.providers.bpm.jbpm.actions.Continue implementation:

  |     public void execute(ExecutionContext executionContext) throws Exception
  |     {
  |         executionContext.leaveNode();
  |     }
  | 

When executing this process, engine throws an error:

  | org.jbpm.JbpmException: can't continue execution on locked tokens.  signalling the same token that executes an action is not allowed
  | 	at org.jbpm.graph.exe.Token.signal(Token.java:168)
  | 	at org.jbpm.graph.exe.Token.signal(Token.java:154)
  | 	at org.jbpm.graph.exe.ProcessInstance.end(ProcessInstance.java:274)
  | 	at org.jbpm.graph.exe.ProcessInstance.end(ProcessInstance.java:248)
  | 	at org.jbpm.graph.exe.Token.notifyParentOfTokenEnd(Token.java:275)
  | 	at org.jbpm.graph.exe.Token.end(Token.java:247)
  | 	at org.jbpm.graph.exe.Token.end(Token.java:197)
  | 	at org.jbpm.graph.node.EndState.execute(EndState.java:46)
  | 	at org.jbpm.graph.def.Node.enter(Node.java:316)
  | 	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:597)
  | 	at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
  | 	at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$9bffe16d.enter(<generated>)
  | 	at org.jbpm.graph.def.Transition.take(Transition.java:119)
  | 	at org.jbpm.graph.def.Node.leave(Node.java:383)
  | 	at org.jbpm.graph.def.Node.leave(Node.java:347)
  | 	at org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:120)
  | 	at org.mule.providers.bpm.jbpm.actions.Continue.execute(Continue.java:26)
  | 	at org.jbpm.graph.def.Action.execute(Action.java:123)
  | 	at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:235)
  | 	at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:212)
  | 	at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:182)
  | 	at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:166)
  | 	at org.jbpm.graph.def.Node.enter(Node.java:301)
  | 	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:597)
  | 	at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
  | 	at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$9bffe16d.enter(<generated>)
  | 	at org.jbpm.graph.def.Transition.take(Transition.java:119)
  | 	at org.jbpm.graph.def.Node.leave(Node.java:383)
  | 	at org.jbpm.graph.node.StartState.leave(StartState.java:70)
  | 	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:597)
  | 	at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
  | 	at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$9bffe16d.leave(<generated>)
  | 	at org.jbpm.graph.exe.Token.signal(Token.java:178)
  | 	at org.jbpm.graph.exe.Token.signal(Token.java:123)
  | 	at org.jbpm.graph.exe.ProcessInstance.signal(ProcessInstance.java:217)
  | 	at org.jbpm.graph.node.ProcessState.execute(ProcessState.java:141)
  | 	at org.jbpm.graph.def.Node.enter(Node.java:316)
  | 	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:597)
  | 	at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
  | 	at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$9bffe16d.enter(<generated>)
  | 	at org.jbpm.graph.def.Transition.take(Transition.java:119)
  | 	at org.jbpm.graph.def.Node.leave(Node.java:383)
  | 	at org.jbpm.graph.def.Node.leave(Node.java:347)
  | 	at org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:120)
  | 	at org.mule.providers.bpm.jbpm.actions.Continue.execute(Continue.java:26)
  | 	at org.jbpm.graph.def.Action.execute(Action.java:123)
  | 	at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:235)
  | 	at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:212)
  | 	at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:182)
  | 	at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:166)
  | 	at org.jbpm.graph.def.Node.enter(Node.java:301)
  | 	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:597)
  | 	at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
  | 	at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$9bffe16d.enter(<generated>)
  | 	at org.jbpm.graph.def.Transition.take(Transition.java:119)
  | 	at org.jbpm.graph.def.Node.leave(Node.java:383)
  | 	at org.jbpm.graph.node.StartState.leave(StartState.java:70)
  | 	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:597)
  | 	at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
  | 	at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$9bffe16d.leave(<generated>)
  | 	at org.jbpm.graph.exe.Token.signal(Token.java:178)
  | 	at org.jbpm.graph.exe.Token.signal(Token.java:123)
  | 	at org.jbpm.graph.exe.ProcessInstance.signal(ProcessInstance.java:217)
  | 	at net.metasite.bdm.router.test.TestSubProcessBug.testBug(TestSubProcessBug.java:16)
  | 	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:597)
  | 	at junit.framework.TestCase.runTest(TestCase.java:154)
  | 	at junit.framework.TestCase.runBare(TestCase.java:127)
  | 	at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:69)
  | 	at junit.framework.TestResult$1.protect(TestResult.java:106)
  | 	at junit.framework.TestResult.runProtected(TestResult.java:124)
  | 	at junit.framework.TestResult.run(TestResult.java:109)
  | 	at junit.framework.TestCase.run(TestCase.java:118)
  | 	at junit.framework.TestSuite.runTest(TestSuite.java:208)
  | 	at junit.framework.TestSuite.run(TestSuite.java:203)
  | 	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
  | 	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
  | 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
  | 

Is this a bug in JBpm or I'm doing something wrong?

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

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4126010



More information about the jboss-user mailing list