From: Tom B. (JIRA) <jir...@jb...> - 2005-11-04 13:14:17
|
[ http://jira.jboss.com/jira/browse/JBPM-343?page=comments#action_12326075 ] Tom Baeyens commented on JBPM-343: ---------------------------------- i didn't see the rest of your suggestions. i think that your suggestion still has a problem. because i actually need copies of the bytearray. can you try the following change ? change the ByteArray constructor from public ByteArray(ByteArray other) { this.byteBlocks = other.byteBlocks; this.name = other.name; } to public ByteArray(ByteArray other) { this.byteBlocks = new ArrayList(other.byteBlocks); this.name = other.name; } that might fix the problem too and then we're sure that the logs adhere to the log convention. meaning that logs only store copies to the actual variables and not references. thanks for your feedback. regards, tom. > Storing java.util.Collections as a process variable causes "Found shared references to a collection" hibernate error > -------------------------------------------------------------------------------------------------------------------- > > Key: JBPM-343 > URL: http://jira.jboss.com/jira/browse/JBPM-343 > Project: JBoss jBPM > Type: Bug > Components: Core Engine > Versions: jBPM 3.1, jBPM 3.0.1, jBPM 3.1 alpha 1, jBPM 3.0.2, jBPM 3.1 alpha 2 > Environment: Jboss 4.0.1, Tomcat 5.5.4, Windows XP Professional, Java 1.4.2.06 > Reporter: Crayton OSteen > Assignee: Tom Baeyens > Priority: Critical > Attachments: callstack.txt, processdefinition.xml, user_code.txt > > Original Estimate: 2 days > Remaining: 2 days > > I'm storing instances of java.util.Collection as process variables. The first step I store a collection works fine. > Subsequent workflow steps generate a hibernate error when trying to save the process instance: > ERROR [JbpmSession] org.hibernate.HibernateException: Found shared references to a collection. > Here is a sample processDefinition.xml file: > ======================================== > <?xml version="1.0" encoding="UTF-8"?> > <process-definition name="collectionBug"> > <start-state name="start"> > <transition name="toEnterConApplication" to="enterConApplication"></transition> > </start-state> > <task-node name="enterConApplication"> > <task name="dataEntry" blocking="true"> > <assignment expression="group(DataEntry)-->member(member)"/> > <controller> > <variable name="conId" access="write,required" /> > <variable name="contacts" access="write,required" /> > </controller> > </task> > <transition name="toEvaluateCompleteness" to="evaluateCompleteness"></transition> > </task-node> > <task-node name="evaluateCompleteness"> > <task name="evaluate" blocking="true"> > <assignment expression="group(DataEntry)-->member(member)"/> > <controller> > <variable name="conId" access="read" /> > <variable name="contacts" access="read" /> > </controller> > </task> > <transition name="toEnd" to="End"></transition> > </task-node> > <end-state name="End"></end-state> > </process-definition> > ========================= > Here is the user code (the error happens on the saveProcessInstance call): > ============================= > public Long completeTaskInstance( String actorId, String taskInstanceId, > Map vars, String transition ) throws TaskInstanceNotFoundException, > WorkflowServiceException, BusinessValidationException > { > Long nextTaskId = null; > final JbpmSession jbpmSession = jbpmSessionFactory.openJbpmSession(); > try > { > JbpmDefaultAuthenticator.pushAuthenticatedActorId(actorId); > jbpmSession.beginTransaction(); > final org.jbpm.taskmgmt.exe.TaskInstance jbpmTaskInstance = jbpmSession > .getTaskMgmtSession().loadTaskInstance( > Long.parseLong(taskInstanceId)); > if ( jbpmTaskInstance == null ) > { > throw new TaskInstanceNotFoundException( > "Could not find jBPM TaskInstance: " + taskInstanceId); > } > if ( vars == null ) > { > vars = new Hashtable(); > } > if ( actorId == null ) > vars.remove("actorId"); > else > vars.put("actorId", actorId); > for ( final Iterator i = vars.keySet().iterator(); i.hasNext(); ) > { > final String var = (String)i.next(); > Object obj = vars.get(var); > jbpmTaskInstance.getToken().getProcessInstance() > .getContextInstance().setVariable(var, obj); > } > Node preTransitionNode = jbpmTaskInstance.getToken().getNode(); > // Token preTransitionToken = jbpmTaskInstance.getToken(); > Node goalNode = null; > if ( transition == null ) > { > goalNode = preTransitionNode.getDefaultLeavingTransition().getTo(); > jbpmTaskInstance.end(); > } > else > { > goalNode = preTransitionNode.getLeavingTransition(transition) > .getTo(); > jbpmTaskInstance.end(transition); > } > jbpmSession.getGraphSession().saveProcessInstance( > jbpmTaskInstance.getToken().getProcessInstance()); > jbpmSession.commitTransaction(); > // Determine if the next "task" is for the same actor > nextTaskId = sameTaskActor(jbpmSession, actorId, goalNode, > jbpmTaskInstance.getToken().getProcessInstance()); > return nextTaskId; > } > catch (Exception ex) > { > jbpmSession.rollbackTransaction(); > if ( ex instanceof DelegationException ) > { > if ( ex.getCause() instanceof WorkflowServiceException ) > { > // Throwable throwable = ex.getCause(); > throw (WorkflowServiceException)ex.getCause(); > } > else > { > throw new WorkflowServiceException(ex.getCause().getMessage()); > } > } > throw new WorkflowServiceException("Unexpected exception received:", > ex); > } > catch (Throwable e) > { > // Make sure you at least attempt to roll back the > // transaction no matter what error or exception occurs. > jbpmSession.rollbackTransaction(); > throw new Error(e); > } > finally > { > if ( jbpmSession != null ) > { > jbpmSession.close(); > } > JbpmDefaultAuthenticator.popAuthenticatedActorId(); > } > } > =========================== > Here's the call stack: > ======================================= > 09:46:01,493 ERROR [SchedulerSession] org.hibernate.HibernateException: Found shared references to a collection > 09:46:01,493 ERROR [GraphSession] java.lang.RuntimeException: couldn't delete timers for process instance 'org.jbpm.graph.exe.ProcessInstance@10119bb' > 09:46:01,509 ERROR [JDBCTransaction] Could not toggle autocommit > org.hibernate.SessionException: Session is closed > at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:131) > at org.hibernate.transaction.JDBCTransaction.toggleAutoCommit(JDBCTransaction.java:174) > at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:166) > at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:142) > at org.jbpm.db.JbpmSession.handleException(JbpmSession.java:177) > at org.jbpm.db.GraphSession.saveProcessInstance(GraphSession.java:208) > at com.acs.ghs.shared.service.workflow.jbpm.JbpmWorkflowServicesImpl.completeTaskInstance(JbpmWorkflowServicesImpl.java:573) > at com.acs.ghs.nc.dfs.wf.ejb.WorkflowServicesEJB.completeTaskInstance(WorkflowServicesEJB.java:124) > 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.jboss.invocation.Invocation.performCall(Invocation.java:345) > at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214) > at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185) > at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:113) > at org.jboss.webservice.server.ServiceEndpointInterceptor.invoke(ServiceEndpointInterceptor.java:51) > at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48) > at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105) > at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:313) > at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:146) > at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:122) > at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192) > at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) > at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624) > at org.jboss.ejb.Container.invoke(Container.java:870) > at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144) > at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:72) > at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642) > at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:805) > at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:406) > at sun.reflect.GeneratedMethodAccessor71.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294) > at sun.rmi.transport.Transport$1.run(Transport.java:153) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:149) > at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) > at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) > at java.lang.Thread.run(Thread.java:595) > 09:46:01,525 ERROR [JbpmSession] couldn't rollback hibernate transaction > org.hibernate.SessionException: Session is closed > at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:131) > at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:163) > at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:142) > at org.jbpm.db.JbpmSession.handleException(JbpmSession.java:177) > at org.jbpm.db.GraphSession.saveProcessInstance(GraphSession.java:208) > at com.acs.ghs.shared.service.workflow.jbpm.JbpmWorkflowServicesImpl.completeTaskInstance(JbpmWorkflowServicesImpl.java:573) > at com.acs.ghs.nc.dfs.wf.ejb.WorkflowServicesEJB.completeTaskInstance(WorkflowServicesEJB.java:124) > 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.jboss.invocation.Invocation.performCall(Invocation.java:345) > at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214) > at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185) > at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:113) > at org.jboss.webservice.server.ServiceEndpointInterceptor.invoke(ServiceEndpointInterceptor.java:51) > at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48) > at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105) > at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:313) > at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:146) > at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:122) > at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192) > at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) > at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624) > at org.jboss.ejb.Container.invoke(Container.java:870) > at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144) > at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:72) > at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642) > at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:805) > at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:406) > at sun.reflect.GeneratedMethodAccessor71.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294) > at sun.rmi.transport.Transport$1.run(Transport.java:153) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:149) > at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) > at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) > at java.lang.Thread.run(Thread.java:595) > 09:46:01,525 WARN [JbpmSession] can't pop current session: are you calling JbpmSession.close() multiple times ? > 09:46:01,525 ERROR [JDBCTransaction] Could not toggle autocommit > org.hibernate.SessionException: Session is closed > at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:131) > at org.hibernate.transaction.JDBCTransaction.toggleAutoCommit(JDBCTransaction.java:174) > at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:166) > at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:142) > at org.jbpm.db.JbpmSession.rollbackTransaction(JbpmSession.java:118) > at com.acs.ghs.shared.service.workflow.jbpm.JbpmWorkflowServicesImpl.completeTaskInstance(JbpmWorkflowServicesImpl.java:585) > at com.acs.ghs.nc.dfs.wf.ejb.WorkflowServicesEJB.completeTaskInstance(WorkflowServicesEJB.java:124) > 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.jboss.invocation.Invocation.performCall(Invocation.java:345) > at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214) > at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185) > at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:113) > at org.jboss.webservice.server.ServiceEndpointInterceptor.invoke(ServiceEndpointInterceptor.java:51) > at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48) > at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105) > at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:313) > at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:146) > at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:122) > at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192) > at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) > at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624) > at org.jboss.ejb.Container.invoke(Container.java:870) > at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144) > at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:72) > at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642) > at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:805) > at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:406) > at sun.reflect.GeneratedMethodAccessor71.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294) > at sun.rmi.transport.Transport$1.run(Transport.java:153) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:149) > at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) > at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) > at java.lang.Thread.run(Thread.java:595) > 09:46:01,525 ERROR [JbpmSession] org.hibernate.SessionException: Session is closed > 09:46:01,525 ERROR [JDBCTransaction] Could not toggle autocommit > org.hibernate.SessionException: Session is closed > at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:131) > at org.hibernate.transaction.JDBCTransaction.toggleAutoCommit(JDBCTransaction.java:174) > at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:166) > at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:142) > at org.jbpm.db.JbpmSession.handleException(JbpmSession.java:177) > at org.jbpm.db.JbpmSession.rollbackTransaction(JbpmSession.java:121) > at com.acs.ghs.shared.service.workflow.jbpm.JbpmWorkflowServicesImpl.completeTaskInstance(JbpmWorkflowServicesImpl.java:585) > at com.acs.ghs.nc.dfs.wf.ejb.WorkflowServicesEJB.completeTaskInstance(WorkflowServicesEJB.java:124) > 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.jboss.invocation.Invocation.performCall(Invocation.java:345) > at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214) > at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185) > at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:113) > at org.jboss.webservice.server.ServiceEndpointInterceptor.invoke(ServiceEndpointInterceptor.java:51) > at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48) > at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105) > at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:313) > at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:146) > at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:122) > at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192) > at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) > at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624) > at org.jboss.ejb.Container.invoke(Container.java:870) > at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144) > at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:72) > at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642) > at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:805) > at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:406) > at sun.reflect.GeneratedMethodAccessor71.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294) > at sun.rmi.transport.Transport$1.run(Transport.java:153) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:149) > at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) > at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) > at java.lang.Thread.run(Thread.java:595) > 09:46:01,525 ERROR [JbpmSession] couldn't rollback hibernate transaction > org.hibernate.SessionException: Session is closed > at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:131) > at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:163) > at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:142) > at org.jbpm.db.JbpmSession.handleException(JbpmSession.java:177) > at org.jbpm.db.JbpmSession.rollbackTransaction(JbpmSession.java:121) > at com.acs.ghs.shared.service.workflow.jbpm.JbpmWorkflowServicesImpl.completeTaskInstance(JbpmWorkflowServicesImpl.java:585) > at com.acs.ghs.nc.dfs.wf.ejb.WorkflowServicesEJB.completeTaskInstance(WorkflowServicesEJB.java:124) > 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.jboss.invocation.Invocation.performCall(Invocation.java:345) > at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214) > at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185) > at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:113) > at org.jboss.webservice.server.ServiceEndpointInterceptor.invoke(ServiceEndpointInterceptor.java:51) > at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48) > at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105) > at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:313) > at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:146) > at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:122) > at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192) > at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) > at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624) > at org.jboss.ejb.Container.invoke(Container.java:870) > at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144) > at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:72) > at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642) > at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:805) > at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:406) > at sun.reflect.GeneratedMethodAccessor71.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294) > at sun.rmi.transport.Transport$1.run(Transport.java:153) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:149) > at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) > at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) > at java.lang.Thread.run(Thread.java:595) > 09:46:01,525 WARN [JbpmSession] can't pop current session: are you calling JbpmSession.close() multiple times ? > 09:46:01,525 WARN [JbpmSession] can't pop current session: are you calling JbpmSession.close() multiple times ? > 09:46:01,525 INFO [ClassPathXmlApplicationContext] Closing application context [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=15275176] > 09:46:01,525 INFO [DefaultListableBeanFactory] Destroying singletons in factory {org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [dfsDataSource,dfsHibernateProperties,dfsSessionFactory,workflowServices,reportDefinitionDao,reportingService,notificationDao,notificationServices,certificateOfNeedDao,conServices,notificationInboxCollector,hibernateAnalystDao,identityServices,workflowInboxCollector,dfsInboxServices]; root of BeanFactory hierarchy} > 09:46:01,525 INFO [LocalSessionFactoryBean] Closing Hibernate SessionFactory > 09:46:01,525 INFO [SessionFactoryImpl] closing > 09:46:01,525 INFO [SessionFactoryObjectFactory] Unbinding factory from JNDI name: java:comp/env/hibernate/SessionFactory > 09:46:01,525 INFO [NamingHelper] JNDI InitialContext properties:{} > 09:46:01,525 INFO [SessionFactoryObjectFactory] Unbound factory from JNDI name: java:comp/env/hibernate/SessionFactory > 09:46:01,525 ERROR [LogInterceptor] RuntimeException in method: public abstract java.lang.Long com.acs.ghs.nc.dfs.wf.ejb.WorkflowServicesRemote.completeTaskInstance(java.lang.String,java.lang.String,java.util.Map,java.lang.String) throws com.acs.ghs.shared.service.workflow.TaskInstanceNotFoundException,com.acs.ghs.shared.service.workflow.WorkflowServiceException,com.acs.ghs.shared.service.workflow.BusinessValidationException,java.rmi.RemoteException: > java.lang.RuntimeException: couldn't rollback transaction > at org.jbpm.db.JbpmSession.rollbackTransaction(JbpmSession.java:122) > at com.acs.ghs.shared.service.workflow.jbpm.JbpmWorkflowServicesImpl.completeTaskInstance(JbpmWorkflowServicesImpl.java:585) > at com.acs.ghs.nc.dfs.wf.ejb.WorkflowServicesEJB.completeTaskInstance(WorkflowServicesEJB.java:124) > 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.jboss.invocation.Invocation.performCall(Invocation.java:345) > at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214) > at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185) > at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:113) > at org.jboss.webservice.server.ServiceEndpointInterceptor.invoke(ServiceEndpointInterceptor.java:51) > at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48) > at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105) > at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:313) > at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:146) > at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:122) > at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192) > at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) > at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624) > at org.jboss.ejb.Container.invoke(Container.java:870) > at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144) > at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:72) > at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642) > at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:805) > at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:406) > at sun.reflect.GeneratedMethodAccessor71.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294) > at sun.rmi.transport.Transport$1.run(Transport.java:153) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:149) > at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) > at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) > at java.lang.Thread.run(Thread.java:595) > Caused by: org.hibernate.SessionException: Session is closed > at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:131) > at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:163) > at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:142) > at org.jbpm.db.JbpmSession.rollbackTransaction(JbpmSession.java:118) > ... 40 more -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |