Bug 778383 (SOA-866)

Summary: Decision Nodes not working, exception says decision selected non existing transition
Product: [JBoss] JBoss Enterprise SOA Platform 4 Reporter: nwallace <nwallace>
Component: JBPM - within SOAAssignee: nwallace <nwallace>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 4.2 CR3   
Target Milestone: ---   
Target Release: 4.2 CP03   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/SOA-866
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
T60 laptop running RHEL 5, Java 1.5, SOA Platform 4.2 CR3
Last Closed: 2008-11-03 14:51:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 777945    

Description nwallace 2008-09-25 20:21:33 UTC
Date of First Response: 2008-09-28 09:24:59
project_key: SOA

I have defined a process definition with the following decision node where Account is a POJO. I can see that the Account as a jBPM variable in the jBPM Admin Console. 

<decision name="Sufficient Funds in Account?" expression="#{account.balance &gt; tollTransaction.toll} ">
		<transition to="Post Toll Transaction to Account" name="true"></transition>
		<transition to="Replenish Account" name="false"></transition>
</decision>

When I execute the process, I get the following errors:

15:55:39,123 ERROR [GraphElement] action threw exception: decision 'Sufficient Funds in Account?' selected non existing transition 'true '
org.jbpm.JbpmException: decision 'Sufficient Funds in Account?' selected non existing transition 'true '
        at org.jbpm.graph.node.Decision.execute(Decision.java:102)
        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$$b7f2fc0f.enter(<generated>)
        at org.jbpm.graph.def.Transition.take(Transition.java:151)
        at org.jbpm.graph.def.Node.leave(Node.java:394)
        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$$b7f2fc0f.leave(<generated>)
        at org.jbpm.graph.exe.Token.signal(Token.java:195)
        at org.jbpm.graph.exe.Token.signal(Token.java:140)
        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$$e74c698b.signal(<generated>)
        at org.jbpm.command.SignalCommand.execute(SignalCommand.java:91)
        at org.jboss.soa.esb.services.jbpm.cmd.AsyncProcessSignal$AsyncSignalAction.execute(AsyncProcessSignal.java:287)
        at org.jbpm.graph.def.Action.execute(Action.java:122)
        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.Action$$EnhancerByCGLIB$$b15cf56b.execute(<generated>)
        at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:264)
        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$$b7f2fc0f.executeAction(<generated>)
        at org.jbpm.job.ExecuteActionJob.execute(ExecuteActionJob.java:32)
        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.job.Job$$EnhancerByCGLIB$$27ab04c8.execute(<generated>)
        at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:164)
        at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)


I then tried the following (simpler) expression, and got a similar result:

#{account.balance > 100} 


16:07:28,807 ERROR [GraphElement] action threw exception: decision 'Sufficient Funds in Account?' selected non existing transition 'false '
org.jbpm.JbpmException: decision 'Sufficient Funds in Account?' selected non existing transition 'false '

Comment 1 nwallace 2008-09-25 20:21:33 UTC
Link: Added: This issue is a dependency of SOA-474


Comment 2 nwallace 2008-09-25 20:21:33 UTC
Link: Added: This issue related JBPM-1143


Comment 3 nwallace 2008-09-25 20:22:16 UTC
Link: Added: This issue is related to SOA-450


Comment 4 nwallace 2008-09-25 20:22:56 UTC
Can we have confirmation that fixes are in place for 4.2CP03.

Comment 5 Mark Little 2008-09-28 13:24:59 UTC
Follow up through the jBPM issue.

Comment 6 Julian Coleman 2008-11-03 14:51:04 UTC
As per SOA-474, this is already documented in the SOA Eelease Notes on
the 4.2 branch.