Hi, we currently invoke a EJB-SessionBean out of a action in jBPM 3.1.1. jBPM runs ins the same JTA-Transaction as our SessionBean.
Now a BusinessException occurs in the called SessionBean, which causes to set rollbackOnly on the JTA-Transaction in the SessionBean. The the Exception is thrown to jBPM. jBPM wants to look for ExceptionHandlers, but that fails with an own exception: | 7:14:29,875 INFO [DefaultLoadEventListener] Error performing load command | org.hibernate.exception.GenericJDBCException: Cannot open connection | at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103) | at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91) | at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) | at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29) | at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:420) | at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144) | at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139) | at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1561) | at org.hibernate.loader.Loader.doQuery(Loader.java:661) | at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) | at org.hibernate.loader.Loader.loadEntity(Loader.java:1785) | at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48) | at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42) | at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2821) | at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:370) | at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:351) | at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:122) | at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:81) | at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:871) | at org.hibernate.impl.SessionImpl.immediateLoad(SessionImpl.java:829) | at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:66) | at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111) | at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:160) | at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$cb896060.equals(<generated>) | at org.jbpm.util.EqualsUtil.equals(EqualsUtil.java:30) | at org.jbpm.graph.def.GraphElement.equals(GraphElement.java:418) | at org.jbpm.graph.def.GraphElement$$FastClassByCGLIB$$7a7d6aa6.invoke(<generated>) | at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) | at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:163) | at org.jbpm.graph.node.TaskNode$$EnhancerByCGLIB$$78d101e.equals(<generated>) | at org.jbpm.graph.def.Transition.getParent(Transition.java:204) | at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:338) | at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:248) | 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.Transition.take(Transition.java:106) | at org.jbpm.graph.def.Node.leave(Node.java:382) | at org.jbpm.graph.node.TaskNode.leave(TaskNode.java:198) | at org.jbpm.graph.def.Node$$FastClassByCGLIB$$d187eeda.invoke(<generated>) | at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) | at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:163) | at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$cb896060.leave(<generated>) | at org.jbpm.graph.exe.Token.signal(Token.java:174) | at org.jbpm.graph.exe.Token.signal(Token.java:145) | at org.jbpm.graph.exe.Token$$FastClassByCGLIB$$74df1c6e.invoke(<generated>) | at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) | at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:163) | at org.jbpm.graph.exe.Token$$EnhancerByCGLIB$$fae2cddc.signal(<generated>) | at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:420) | at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:359) | at org.jbpm.taskmgmt.exe.TaskInstance$$FastClassByCGLIB$$cb2c21af.invoke(<generated>) | at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) | at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:163) | at org.jbpm.taskmgmt.exe.TaskInstance$$EnhancerByCGLIB$$cbd8230f.end(<generated>) | at com.camunda.toolkit.jbpm.service.AdminServicesImpl.endTask(AdminServicesImpl.java:1452) | My guess is, that Hibernate can not load anything new because the transaction is already marked for rollback. Am I right? Is there a easy workaround or something like that? The ugly thide of this, is that the real Exception "gets lost" and van not be thrown to the client any more... Many thanks and best regards Bernd View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3951839#3951839 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3951839 _______________________________________________ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user