Help wanted debugging jbpm 3.3
oxbow_lakes Sep 22, 2011 4:09 AMI find myself supporting an application which I didn't write and which makes heavy use of JBPM 3.3. Occasionally it starts spewing exceptions non-stop
java.lang.NullPointerException
at org.jbpm.graph.def.GraphElement.getRuntimeActionsForEvent(GraphElement.java:310)
at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:217)
at sun.reflect.GeneratedMethodAccessor55.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.taskmgmt.def.Task$$EnhancerByCGLIB$$8cd382f6.fireAndPropagateEvent(<generated>)
at org.jbpm.job.Timer.execute(Timer.java:51)
at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.job.Job$$EnhancerByCGLIB$$7ab55e8c.execute(<generated>)
at be.jorambarrez.jbpm3_spring_integration.FixExceptionLengthJobExecutorThread.executeJob(FixExceptionLengthJobExecutorThread.java:164)
at be.jorambarrez.jbpm3_spring_integration.SpringJobExecutorThread.access$101(SpringJobExecutorThread.java:24)
at be.jorambarrez.jbpm3_spring_integration.SpringJobExecutorThread$2.doInTransactionWithoutResult(SpringJobExecutorThread.java:64)
at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
at be.jorambarrez.jbpm3_spring_integration.SpringJobExecutorThread.executeJob(SpringJobExecutorThread.java:59)
Googling, I can see here (http://community.jboss.org/thread/112377?decorator=print&displayFullThread=true) that this has been encountered by others and is associated with not closing JbpmContext after each use. However, the class FixExceptionLengthJobExecutorThread is definitely using JbpmContext correctly, as I have the source code for that.
I have no source code for the GraphElement, don't know where to find it and there is not a single class in there from my application. I don't know where to start trying to get to the bottom of this. Any help greatly appreciated - is this a bug in JBPM? Was it fixed in a different version? Can anyone point me to a workaround?