Seam 2 B1 - Ending a process instance fails.
jcruise Jul 10, 2007 8:19 PMTomcat 6
Seam 2 B1
Jboss Embedded Beta 2
Signalling the last task on a process causes the following exception:
Caused by: org.jbpm.JbpmException: couldn't delete jobs for 'org.jbpm.graph.exe.ProcessInstance@1661834' at org.jbpm.db.JobSession.deleteJobsForProcessInstance(JobSession.java:211) at org.jbpm.scheduler.db.DbSchedulerService.deleteTimersByProcessInstance(DbSchedulerService.java:54) at org.jbpm.graph.exe.ProcessInstance.end(ProcessInstance.java:329) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:147) at org.jbpm.graph.exe.ProcessInstance$$EnhancerByCGLIB$$b594bd1c.end(<generated>) at org.jbpm.graph.exe.Token.notifyParentOfTokenEnd(Token.java:331) at org.jbpm.graph.exe.Token.end(Token.java:303) at org.jbpm.graph.exe.Token.end(Token.java:253) at org.jbpm.graph.node.EndState.execute(EndState.java:59) at org.jbpm.graph.def.Node.enter(Node.java:318) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:147) at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$1483760f.enter(<generated>) at org.jbpm.graph.def.Transition.take(Transition.java:151) at org.jbpm.graph.def.Node.leave(Node.java:393) at org.jbpm.graph.def.Node.leave(Node.java:357) at org.jbpm.graph.def.Node.execute(Node.java:349) at org.jbpm.graph.def.Node.enter(Node.java:318) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:147) at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$1483760f.enter(<generated>) at org.jbpm.graph.def.Transition.take(Transition.java:151) at org.jbpm.graph.def.Node.leave(Node.java:393) at org.jbpm.graph.node.StartState.leave(StartState.java:70) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:147) at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$1483760f.leave(<generated>) at org.jbpm.graph.exe.Token.signal(Token.java:194) at org.jbpm.graph.exe.Token.signal(Token.java:139) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:147) at org.jbpm.graph.exe.Token$$EnhancerByCGLIB$$43dce38b.signal(<generated>) at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:476) at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:390) at org.jboss.seam.bpm.BusinessProcess.endTask(BusinessProcess.java:195) at com.volantice.zone.action.TaskBean.endTask(TaskBean.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss.seam.util.Reflections.invoke(Reflections.java:21) at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56) at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.core.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:54) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.bpm.BusinessProcessInterceptor.aroundInvoke(BusinessProcessInterceptor.java:49) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:38) at org.jboss.seam.util.Work.workInTransaction(Work.java:39) at org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:32) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106) at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:151) at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:87) at com.volantice.zone.action.TaskBean_$$_javassist_5.endTask(TaskBean_$$_javassist_5.java) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:325) at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:338) at org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58) at org.jboss.el.parser.AstValue.invoke(AstValue.java:96) at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77) ... 39 more Caused by: org.hibernate.TransactionException: could not register synchronization at org.hibernate.transaction.JTATransaction.registerSynchronization(JTATransaction.java:309) at org.jbpm.db.JobSession.deleteJobsForProcessInstance(JobSession.java:208) ... 126 more Caused by: java.lang.NullPointerException at org.hibernate.transaction.JTATransaction.registerSynchronization(JTATransaction.java:306) ... 127 more
The code that raises the error is in: org.hibernate.transaction.JTATransaction.
public void registerSynchronization(Synchronization sync) throws HibernateException { if (getTransactionManager()==null) { throw new IllegalStateException("JTA TransactionManager not available"); } else { try { getTransactionManager().getTransaction().registerSynchronization(sync); } catch (Exception e) { throw new TransactionException("could not register synchronization", e); } } }
So I guess the getTransaction() call is returning null.
Has anybody else had problems ending JBPM process instances in Seam2?
Obviously this all worked for me in 1.2.1GA.
What version of JBPM is used in Seam2? it's not 3.2.GA.
Cheers
J