9 Replies Latest reply on Sep 23, 2014 9:52 AM by yogesh02

    LocalTaskService keep using one Entity Manager, Breaks when Database is Restarted

    thomas.setiabudi

      Hi,

       

      This is similar post to https://community.jboss.org/thread/231488?tstart=0

      Only that it discuss about LocalTaskService here

       

      I use JBPM5.4.Final, and Drools-Spring 5.4.Final in a Web Application.

      I create Stateful Knowledge Session and LocalTaskService in the Spring config file, they are created once for the rest of the web application life.

       

       

      Everything works fine, until the Database Server, MS SQL Server 2008, is restarted.

      Which then break the Stateful Knowledge Session and LocalTaskService.

       

       

      After looking at the LocalTaskService code here
      https://github.com/droolsjbpm/jbpm/blob/5.4.x/jbpm-human-task/jbpm-human-task-core/src/main/java/org/jbpm/task/service/local/LocalTaskService.java#L52-L55

      Local Task Service has TaskServiceSession and then TaskServiceSession has TaskPersistenceManager which contain an EntityManager.

       

      The problem is this EntityManager is acquired from EntityManagerFactory just exactly once.

      when the database connection is no longer valid (Because of Database Server restart), it will still use the same EntityManager which will of course throw exception.

       

      My question is, is it a bug? or I use these LocalTaskService Wrongly?

       

      Currently, to keep my application running, I create another class that implements TaskService, and have all the code just like LocalTaskService, the difference is I add a check before doing anything about the task.

      This is a sample code:

       

      public void addTask(Task task, ContentData content) {
                          checkEntityManagerFactory();
                          session.addTask(task, content);
                }
      
      

       

      and the checkEntityManagerFactory() implementation:

       

      public void checkEntityManagerFactory() {
                          if (session != null) {
                                    try {
                                              Query query = session.getTaskPersistenceManager()
                                                                  .createNewQuery("SELECT 1 FROM Task WHERE id = 0 ");
                                              query.getResultList();
                                    } catch (Throwable e) {
                                              session = service.createSession();
                                    }
      
      
                          } else {
                                    session = service.createSession();
                          }
                }
      
      

       

      execute simple select query, when that query throws exception, that means its time to get new EntityManager which in this case is create new TaskServiceSession.

       

      Is it the correct way to do this?

      Will this issue fixed in JBPM 6 ?

       

      Any help is appreciated.

       

       

      Regards,

      Thomas Setiabudi

        • 1. Re: LocalTaskService keep using one Entity Manager, Breaks when Database is Restarted
          swiderski.maciej

          In general, TaskServiceSession object is request scoped object, meaning it shall be created and destroyed on every request. Although LocalTaskService caches it and that is the main reason why LocalTaskService is not thread safe. So to workaround the problem you would need to create LocalTaskService per request which is lightweight enough to do so and that should resolve the problem.

           

          When it comes to ksession, as far as I can tell it does not have issue like LocalTaskService as ksession manages entity manager on command level. Every operation is a command that will be managed independently within transaction and entity managers will be closed and cleaned on transaction completion. What's you ksession strategy? Do you use single session or many sessions? if many make sure you use dedicated environment objects for every ksession.

           

          HTH

          1 of 1 people found this helpful
          • 2. Re: LocalTaskService keep using one Entity Manager, Breaks when Database is Restarted
            thomas.setiabudi

            Hi Maciejs,

             

            I use a single session strategy, so I created only 1 LocalTaskService too, does it mean that it is not threadsafe this way?

             

            Should I stick to the Many Session and Many LocalTaskService to get threadsafety?

             

             

            Regards,

            Thomas Setiabudi

            • 3. Re: LocalTaskService keep using one Entity Manager, Breaks when Database is Restarted
              arif.mohammed

              Hi Thomas,

               

                  Did you got any solution for thread safety issue ?

                 

                  Iam also using single ksession for entire application and I could use 1 LocalTaskService for each thread but the issue is with LocalHTWorkItemHandler. It need LocalTaskService and LocalHTWorkItemHandler need to be registered on ksession following is the code. It look like chicken and egg problem, am I doing anything wrong here ? Maciej can you please help us ?

               

              humanTaskHandler = new LocalHTWorkItemHandler(localTaskService, ksession); //ksession is singleton object

              ksession.getWorkItemManager().registerWorkItemHandler("Human Task",humanTaskHandler); // Do I need to register this handler for every thread ??

              • 4. Re: LocalTaskService keep using one Entity Manager, Breaks when Database is Restarted
                lijiangt

                I have the same problem.

                 

                After some exception ocurred, such as:

                [2014-04-04 09:39:09,135 ERROR http-80-2 org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:101)] error requeuing a JdbcPooledConnection from datasource jdbc/jbpmDS in state ACCESSIBLE with usage count 0 wrapping oracle.jdbc.driver.T4CXAConnection@f4dc7f

                [2014-04-04 09:39:09,135 ERROR http-80-2 org.springframework.transaction.support.TransactionSynchronizationUtils.invokeAfterCompletion(TransactionSynchronizationUtils.java:171)] TransactionSynchronization.afterCompletion threw exception

                org.hibernate.exception.GenericJDBCException: Cannot release connection

                  at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)

                  at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)

                  at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)

                  at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)

                  at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:478)

                  at org.hibernate.jdbc.ConnectionManager.cleanup(ConnectionManager.java:408)

                  at org.hibernate.jdbc.ConnectionManager.close(ConnectionManager.java:347)

                  at org.hibernate.impl.SessionImpl.close(SessionImpl.java:326)

                  at org.hibernate.ejb.EntityManagerImpl.close(EntityManagerImpl.java:124)

                  at sun.reflect.GeneratedMethodAccessor372.invoke(Unknown Source)

                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                  at java.lang.reflect.Method.invoke(Method.java:597)

                  at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365)

                  at $Proxy27.close(Unknown Source)

                  at org.drools.persistence.jpa.JpaPersistenceContext.close(JpaPersistenceContext.java:42)

                  at org.drools.container.spring.beans.persistence.DroolsSpringJpaManager.endCommandScopedEntityManager(DroolsSpringJpaManager.java:125)

                  at org.drools.persistence.SingleSessionCommandService$SynchronizationImpl.afterCompletion(SingleSessionCommandService.java:450)

                  at org.drools.container.spring.beans.persistence.SpringTransactionSynchronizationAdapter.afterCompletion(SpringTransactionSynchronizationAdapter.java:37)

                  at org.springframework.transaction.support.TransactionSynchronizationUtils.invokeAfterCompletion(TransactionSynchronizationUtils.java:168)

                  at org.springframework.transaction.support.AbstractPlatformTransactionManager.invokeAfterCompletion(AbstractPlatformTransactionManager.java:993)

                  at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion(AbstractPlatformTransactionManager.java:968)

                  at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:799)

                  at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)

                  at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)

                  at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:120)

                  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

                  at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)

                  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

                  at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)

                  at com.boeetech.lims.testing.mechanics.service.MchTaskOrderManager$$EnhancerByCGLIB$$43c731f7.saveSubmit(<generated>)

                 

                 

                Complete task and startProcess operation can not continue anymore:

                 

                javax.persistence.PersistenceException: org.hibernate.SessionException: Session is closed!

                  at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:614)

                  at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:547)

                  at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:431)

                  at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.doJoinTransaction(ExtendedEntityManagerCreator.java:382)

                  at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:350)

                  at $Proxy27.joinTransaction(Unknown Source)

                  at org.drools.persistence.jpa.JpaPersistenceContext.joinTransaction(JpaPersistenceContext.java:37)

                  at org.drools.container.spring.beans.persistence.DroolsSpringJpaManager.beginCommandScopedEntityManager(DroolsSpringJpaManager.java:116)

                  at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:362)

                  at org.drools.command.impl.CommandBasedStatefulKnowledgeSession.getEnvironment(CommandBasedStatefulKnowledgeSession.java:478)

                  at org.jbpm.process.workitem.wsht.GenericHTWorkItemHandler$TaskCompletedHandler.handleCompletedTask(GenericHTWorkItemHandler.java:260)

                  at org.jbpm.process.workitem.wsht.GenericHTWorkItemHandler$TaskCompletedHandler.execute(GenericHTWorkItemHandler.java:234)

                  at org.jbpm.task.service.local.LocalTaskService$SimpleEventTransport.trigger(LocalTaskService.java:329)

                  at org.jbpm.task.event.MessagingTaskEventListener.triggerPayload(MessagingTaskEventListener.java:76)

                  at org.jbpm.task.event.MessagingTaskEventListener.handleEvent(MessagingTaskEventListener.java:92)

                  at org.jbpm.task.event.MessagingTaskEventListener.taskCompleted(MessagingTaskEventListener.java:109)

                  at org.jbpm.task.event.TaskEventSupport.fireTaskCompleted(TaskEventSupport.java:49)

                  at org.jbpm.task.service.TaskServiceSession.postTaskCompleteOperation(TaskServiceSession.java:569)

                  at org.jbpm.task.service.TaskServiceSession.taskOperation(TaskServiceSession.java:495)

                  at org.jbpm.task.service.local.LocalTaskService.complete(LocalTaskService.java:83)

                 

                 

                so I must restart tomcat. Sometimes I have to restart tomcat two times one day, so I am very worry about  this problem .

                • 5. Re: LocalTaskService keep using one Entity Manager, Breaks when Database is Restarted
                  swiderski.maciej

                  simply extend the handler to create instance of LocalTaskService on every invocation of the important methods and the listener.

                   

                  HTH

                  • 6. Re: LocalTaskService keep using one Entity Manager, Breaks when Database is Restarted
                    lijiangt

                    Thanks, I will try。

                    • 7. Re: LocalTaskService keep using one Entity Manager, Breaks when Database is Restarted
                      lijiangt

                      org.drools.container.spring.beans.persistence.DroolsSpringJpaManager.endCommandScopedEntityManager has similar problem, after em.close failure, operation can not continue anymore, It will throw exception: javax.persistence.PersistenceException: org.hibernate.SessionException: Session is closed!  I have to restart tomcat。

                       

                       

                      appScopedEntityManager is application scope, so maybe have similar problem,

                       

                       

                       

                      below is exception trace:

                      [2014-04-17 08:39:54,056 WARN  http-80-22 bitronix.tm.BitronixTransaction.delistUnclosedResources(BitronixTransaction.java:463)] error delisting resource, assuming unilateral rollback: an XAResourceHolderState with uniqueName=jdbc/jbpmDS XAResource=oracle.jdbc.driver.T4CXAResource@7eb140 (ended) with XID a Bitronix XID [737072696E672D62746D000000001D8352FE00022B64 : 737072696E672D62746D000000001D8354A100022B6F]

                      bitronix.tm.internal.BitronixSystemException: cannot delist an XAResourceHolderState with uniqueName=jdbc/jbpmDS XAResource=oracle.jdbc.driver.T4CXAResource@7eb140 (ended) with XID a Bitronix XID [737072696E672D62746D000000001D8352FE00022B64 : 737072696E672D62746D000000001D8354A100022B6F], error=XAER_RMERR, extra error=ORA-25352

                        at bitronix.tm.BitronixTransaction.delistResource(BitronixTransaction.java:203)

                        at bitronix.tm.BitronixTransaction.delistUnclosedResources(BitronixTransaction.java:456)

                        at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:254)

                        at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:143)

                        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1010)

                        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)

                        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)

                        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)

                        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:120)

                        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

                        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)

                        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

                        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)

                        at com.boeetech.lims.testing.chemistry.service.TaskAssignManager$$EnhancerByCGLIB$$41314eae.saveSendDownTask(<generated>)

                        at com.boeetech.lims.testing.chemistry.web.DispatcherAction.sendDownTaskSave(DispatcherAction.java:452)

                        at sun.reflect.GeneratedMethodAccessor2914.invoke(Unknown Source)

                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                        at java.lang.reflect.Method.invoke(Method.java:597)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:88)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:88)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilbeginCommandScopedEntityManagerTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:121)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.boeetech.framework.interceptor.TrimParamsInterceptor.doIntercept(TrimParamsInterceptor.java:41)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.boeetech.framework.interceptor.ExceptionMsgInterceptor$ExceptionListener.invoke(ExceptionMsgInterceptor.java:69)

                        at com.boeetech.framework.interceptor.ExceptionMsgInterceptor.intercept(ExceptionMsgInterceptor.java:41)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)

                        at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)

                        at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)

                        at com.boeetech.filter.CKFinderFilter.doFilter(CKFinderFilter.java:34)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)

                        at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)

                        at com.boeetech.framework.filter.SitemeshPageFilter.doFilter(SitemeshPageFilter.java:36)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at com.boeetech.filter.SecurityFilter.doFilter(SecurityFilter.java:316)

                        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

                        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)

                        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.ecside.filter.ECSideFilter.doFilter(ECSideFilter.java:188)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

                        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at com.boeetech.framework.filter.AddHeaderFilter.doFilter(AddHeaderFilter.java:45)

                        at com.boeetech.framework.filter.AddHeaderFilter.doFilter(AddHeaderFilter.java:33)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at com.boeetech.lims.jbpm.ClientDestoryFilter.doFilter(ClientDestoryFilter.java:23)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

                        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

                        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

                        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

                        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

                        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)

                        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)

                        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:600)

                        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1703)

                        at java.lang.Thread.run(Thread.java:619)

                      Caused by: oracle.jdbc.xa.OracleXAException

                        at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:1110)

                        at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:436)

                        at bitronix.tm.internal.XAResourceHolderState.end(XAResourceHolderState.java:172)

                        at bitronix.tm.internal.XAResourceManager.delist(XAResourceManager.java:133)

                        at bitronix.tm.BitronixTransaction.delistResource(BitronixTransaction.java:186)

                        ... 147 more

                      [2014-04-17 08:39:54,056 WARN  http-80-22 org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:100)] SQL Error: 0, SQLState: null

                      [2014-04-17 08:39:54,056 ERROR http-80-22 org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:101)] error requeuing a JdbcPooledConnection from datasource jdbc/jbpmDS in state ACCESSIBLE with usage count 1 wrapping oracle.jdbc.driver.T4CXAConnection@146030f

                      [2014-04-17 08:39:54,056 ERROR http-80-22 org.springframework.transaction.support.TransactionSynchronizationUtils.invokeAfterCompletion(TransactionSynchronizationUtils.java:171)] TransactionSynchronization.afterCompletion threw exception

                      org.hibernate.exception.GenericJDBCException: Cannot release connection

                        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)

                        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)

                        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)

                        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)

                        at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:478)

                        at org.hibernate.jdbc.ConnectionManager.cleanup(ConnectionManager.java:408)

                        at org.hibernate.jdbc.ConnectionManager.close(ConnectionManager.java:347)

                        at org.hibernate.impl.SessionImpl.close(SessionImpl.java:326)

                        at org.hibernate.ejb.EntityManagerImpl.close(EntityManagerImpl.java:124)

                        at sun.reflect.GeneratedMethodAccessor328.invoke(Unknown Source)

                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                        at java.lang.reflect.Method.invoke(Method.java:597)

                        at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365)

                        at $Proxy27.close(Unknown Source)

                        at org.drools.persistence.jpa.JpaPersistenceContext.close(JpaPersistenceContext.java:42)

                        at org.drools.container.spring.beans.persistence.DroolsSpringJpaManager.endCommandScopedEntityManager(DroolsSpringJpaManager.java:125)

                        at org.drools.persistence.SingleSessionCommandService$SynchronizationImpl.afterCompletion(SingleSessionCommandService.java:450)

                        at org.drools.container.spring.beans.persistence.SpringTransactionSynchronizationAdapter.afterCompletion(SpringTransactionSynchronizationAdapter.java:41)

                        at org.springframework.transaction.support.TransactionSynchronizationUtils.invokeAfterCompletion(TransactionSynchronizationUtils.java:168)

                        at org.springframework.transaction.support.AbstractPlatformTransactionManager.invokeAfterCompletion(AbstractPlatformTransactionManager.java:993)

                        at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion(AbstractPlatformTransactionManager.java:968)

                        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:765)

                        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)

                        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)

                        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:120)

                        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

                        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)

                        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

                        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)

                        at com.boeetech.lims.testing.chemistry.service.TaskAssignManager$$EnhancerByCGLIB$$41314eae.saveSendDownTask(<generated>)

                        at com.boeetech.lims.testing.chemistry.web.DispatcherAction.sendDownTaskSave(DispatcherAction.java:452)

                        at sun.reflect.GeneratedMethodAccessor2914.invoke(Unknown Source)

                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                        at java.lang.reflect.Method.invoke(Method.java:597)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:88)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:88)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:121)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.boeetech.framework.interceptor.TrimParamsInterceptor.doIntercept(TrimParamsInterceptor.java:41)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.boeetech.framework.interceptor.ExceptionMsgInterceptor$ExceptionListener.invoke(ExceptionMsgInterceptor.java:69)

                        at com.boeetech.framework.interceptor.ExceptionMsgInterceptor.intercept(ExceptionMsgInterceptor.java:41)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)

                        at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)

                        at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)

                        at com.boeetech.filter.CKFinderFilter.doFilter(CKFinderFilter.java:34)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)

                        at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)

                        at com.boeetech.framework.filter.SitemeshPageFilter.doFilter(SitemeshPageFilter.java:36)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at com.boeetech.filter.SecurityFilter.doFilter(SecurityFilter.java:316)

                        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

                        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)

                        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.ecside.filter.ECSideFilter.doFilter(ECSideFilter.java:188)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

                        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at com.boeetech.framework.filter.AddHeaderFilter.doFilter(AddHeaderFilter.java:45)

                        at com.boeetech.framework.filter.AddHeaderFilter.doFilter(AddHeaderFilter.java:33)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at com.boeetech.lims.jbpm.ClientDestoryFilter.doFilter(ClientDestoryFilter.java:23)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

                        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

                        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

                        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

                        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

                        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)

                        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)

                        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:600)

                        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1703)

                        at java.lang.Thread.run(Thread.java:619)

                      Caused by: java.sql.SQLException: error requeuing a JdbcPooledConnection from datasource jdbc/jbpmDS in state ACCESSIBLE with usage count 1 wrapping oracle.jdbc.driver.T4CXAConnection@146030f

                        at bitronix.tm.resource.jdbc.JdbcPooledConnection.release(JdbcPooledConnection.java:251)

                        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.close(JdbcConnectionHandle.java:103)

                        at sun.reflect.GeneratedMethodAccessor46.invoke(Unknown Source)

                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                        at java.lang.reflect.Method.invoke(Method.java:597)

                        at bitronix.tm.resource.jdbc.BaseProxyHandlerClass.invoke(BaseProxyHandlerClass.java:64)

                        at $Proxy25.close(Unknown Source)

                        at org.hibernate.connection.DatasourceConnectionProvider.closeConnection(DatasourceConnectionProvider.java:97)

                        at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:474)

                        ... 159 more

                      Caused by: bitronix.tm.internal.BitronixSystemException: cannot close a resource when its XAResource is taking part in an unfinished global transaction

                        at bitronix.tm.resource.common.TransactionContextHelper.requeue(TransactionContextHelper.java:140)

                        at bitronix.tm.resource.jdbc.JdbcPooledConnection.release(JdbcPooledConnection.java:240)

                        ... 167 more

                      [2014-04-17 08:39:54,056 ERROR http-80-16 org.drools.persistence.SingleSessionCommandService.rollbackTransaction(SingleSessionCommandService.java:400)] Could not commit session

                      javax.persistence.PersistenceException: org.hibernate.SessionException: Session is closed!

                        at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:614)

                        at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:547)

                        at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:431)

                        at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.doJoinTransaction(ExtendedEntityManagerCreator.java:382)

                        at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:350)

                        at $Proxy27.joinTransaction(Unknown Source)

                        at org.drools.persistence.jpa.JpaPersistenceContext.joinTransaction(JpaPersistenceContext.java:37)

                        at org.drools.container.spring.beans.persistence.DroolsSpringJpaManager.beginCommandScopedEntityManager(DroolsSpringJpaManager.java:116)

                        at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:362)

                        at org.drools.command.impl.CommandBasedStatefulKnowledgeSession.getProcessInstance(CommandBasedStatefulKnowledgeSession.java:125)

                        at org.jbpm.process.workitem.wsht.AbstractHTWorkItemHandler.createTaskBasedOnWorkItemParams(AbstractHTWorkItemHandler.java:105)

                        at com.boeetech.lims.jbpm.LocalHTWorkItemHandler.executeWorkItem(LocalHTWorkItemHandler.java:61)

                        at org.drools.persistence.jpa.processinstance.JPAWorkItemManager.internalExecuteWorkItem(JPAWorkItemManager.java:55)

                        at org.jbpm.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:107)

                        at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:126)

                        at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:279)

                        at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:238)

                        at org.jbpm.workflow.instance.node.JoinInstance.triggerCompleted(JoinInstance.java:152)

                        at org.jbpm.workflow.instance.node.JoinInstance.internalTrigger(JoinInstance.java:52)

                        at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:126)

                        at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:279)

                        at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:287)

                        at org.jbpm.workflow.instance.node.SplitInstance.internalTrigger(SplitInstance.java:100)

                        at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:126)

                        at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:279)

                        at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:238)

                        at org.jbpm.workflow.instance.impl.ExtendedNodeInstanceImpl.triggerCompleted(ExtendedNodeInstanceImpl.java:47)

                        at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:216)

                        at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:196)

                        at org.jbpm.workflow.instance.node.WorkItemNodeInstance.triggerCompleted(WorkItemNodeInstance.java:247)

                        at org.jbpm.workflow.instance.node.HumanTaskNodeInstance.triggerCompleted(HumanTaskNodeInstance.java:90)

                        at org.jbpm.workflow.instance.node.WorkItemNodeInstance.workItemCompleted(WorkItemNodeInstance.java:309)

                        at org.jbpm.workflow.instance.node.WorkItemNodeInstance.signalEvent(WorkItemNodeInstance.java:285)

                        at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.signalEvent(WorkflowProcessInstanceImpl.java:342)

                        at org.drools.persistence.jpa.processinstance.JPAWorkItemManager.completeWorkItem(JPAWorkItemManager.java:121)

                        at org.drools.command.runtime.process.CompleteWorkItemCommand.execute(CompleteWorkItemCommand.java:69)

                        at org.drools.command.runtime.process.CompleteWorkItemCommand.execute(CompleteWorkItemCommand.java:32)

                        at org.drools.command.impl.DefaultCommandService.execute(DefaultCommandService.java:36)

                        at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:373)

                        at org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:150)

                        at com.boeetech.lims.jbpm.TaskCompletedHandler.handleCompletedTask(TaskCompletedHandler.java:63)

                        at com.boeetech.lims.jbpm.TaskCompletedHandler.execute(TaskCompletedHandler.java:30)

                        at com.boeetech.lims.jbpm.WorkflowImpl$SimpleEventTransport.trigger(WorkflowImpl.java:84)

                        at org.jbpm.task.event.MessagingTaskEventListener.triggerPayload(MessagingTaskEventListener.java:76)

                        at org.jbpm.task.event.MessagingTaskEventListener.handleEvent(MessagingTaskEventListener.java:92)

                        at org.jbpm.task.event.MessagingTaskEventListener.taskCompleted(MessagingTaskEventListener.java:109)

                        at org.jbpm.task.event.TaskEventSupport.fireTaskCompleted(TaskEventSupport.java:49)

                        at org.jbpm.task.service.TaskServiceSession.postTaskCompleteOperation(TaskServiceSession.java:569)

                        at org.jbpm.task.service.TaskServiceSession.taskOperation(TaskServiceSession.java:495)

                        at org.jbpm.task.service.local.LocalTaskService.complete(LocalTaskService.java:83)

                        at com.boeetech.lims.jbpm.WorkflowImpl.complete(WorkflowImpl.java:236)

                        at com.boeetech.lims.jbpm.WorkflowImpl.complete(WorkflowImpl.java:243)

                        at com.boeetech.lims.testing.chemistry.service.TaskAssignManager.saveOperatorBack(TaskAssignManager.java:904)

                        at com.boeetech.lims.testing.chemistry.service.TaskAssignManager$$FastClassByCGLIB$$b969f68b.invoke(<generated>)

                        at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)

                        at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)

                        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

                        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)

                        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

                        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)

                        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

                        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)

                        at com.boeetech.lims.testing.chemistry.service.TaskAssignManager$$EnhancerByCGLIB$$41314eae.saveOperatorBack(<generated>)

                        at com.boeetech.lims.testing.chemistry.web.OperatorAction.saveBack(OperatorAction.java:293)

                        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:597)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:88)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:88)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:121)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.boeetech.framework.interceptor.TrimParamsInterceptor.doIntercept(TrimParamsInterceptor.java:41)

                        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.boeetech.framework.interceptor.ExceptionMsgInterceptor$ExceptionListener.invoke(ExceptionMsgInterceptor.java:69)

                        at com.boeetech.framework.interceptor.ExceptionMsgInterceptor.intercept(ExceptionMsgInterceptor.java:41)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

                        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

                        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

                        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

                        at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)

                        at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)

                        at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)

                        at com.boeetech.filter.CKFinderFilter.doFilter(CKFinderFilter.java:34)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)

                        at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)

                        at com.boeetech.framework.filter.SitemeshPageFilter.doFilter(SitemeshPageFilter.java:36)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at com.boeetech.filter.SecurityFilter.doFilter(SecurityFilter.java:316)

                        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

                        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)

                        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.ecside.filter.ECSideFilter.doFilter(ECSideFilter.java:188)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

                        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at com.boeetech.framework.filter.AddHeaderFilter.doFilter(AddHeaderFilter.java:45)

                        at com.boeetech.framework.filter.AddHeaderFilter.doFilter(AddHeaderFilter.java:33)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at com.boeetech.lims.jbpm.ClientDestoryFilter.doFilter(ClientDestoryFilter.java:23)

                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

                        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

                        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

                        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

                        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

                        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

                        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)

                        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)

                        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:600)

                        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1703)

                        at java.lang.Thread.run(Thread.java:619)

                      Caused by: org.hibernate.SessionException: Session is closed!

                        at org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:72)

                        at org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1342)

                        at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:441)

                        ... 201 more

                      • 8. Re: LocalTaskService keep using one Entity Manager, Breaks when Database is Restarted
                        arif.mohammed

                        It seems to be there are always problems with transactions with jBPM. I agree as per the documentation it is said that we can configure it in different environments, It would be great if jBPM team can enhance the documentation for configuring in different types of environments Or I might have not looked in proper place. Initially I had some problems with jBPM5.4.0 + Spring + tomcat + bitronix tx mgr, then I am forced to move to jBoss app server. I started using jBPM5.4.0 + Spring + jBoss7.1.1 dont ask why spring layer if I am already in JEE environment, I have some project constraints. Later with some changes in configurations I am able to work with jBPM5.4.0 + Spring + Local transactions (for unit testing) but Iam not able to succeed with jBPM5.4.0 + Spring + JTA + Bitronix/Atomikos tx mgr. Now at last when I am in process of upgrading to version 6 I have problems with both jBPM6 + Spring + Local transactions and jBPM6 + Spring + JTA + Bitronix/Atomikos for oracle DB, However I am able to succeed atleast in deployment with jBPM6 + Spring + jBoss7.1.1.

                         

                          To cut short the description I always face problems with transactions when not using jBPM + jBoss There seems to be already there are un-resolved threads related to using jBPM outside of jBoss container

                         

                        [JBRULES-3397] Support for local ltransactions ("EntityTransaction") - JBoss Issue Tracker

                        https://issues.jboss.org/browse/JBPM-3282

                        [JBPM-3282] Transaction type "RESOURCE_LOCAL" not supported. - JBoss Issue Tracker

                        [JBPM-4026] Transaction is already completed - do not call commit or rollback more than once per transaction - JBoss Iss…

                        • 9. Re: LocalTaskService keep using one Entity Manager, Breaks when Database is Restarted
                          yogesh02

                          Hi All,

                           

                          I'm facing similar issue, and my environment is : spring +JTA(Bitronix)+Tomcat+jbpm5.4

                          and I'm getting below error :

                           

                           

                          Sep 23, 2014 4:29:27 PM org.drools.persistence.SingleSessionCommandService rollbackTransaction

                          SEVERE: Could not commit session

                          org.hibernate.SessionException: Session is closed!

                                  at org.hibernate.internal.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:129)

                                  at org.hibernate.internal.SessionImpl.getTransactionCoordinator(SessionImpl.java:2008)

                                  at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:1208)

                                  at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:1183)

                                  at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.doJoinTransaction(ExtendedEntityManagerCreator.java:382)

                                  at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:350)

                                  at $Proxy646.joinTransaction(Unknown Source)

                                  at org.drools.persistence.jpa.JpaPersistenceContext.joinTransaction(JpaPersistenceContext.java:37)

                                  at org.drools.container.spring.beans.persistence.DroolsSpringJpaManager.beginCommandScopedEntityManager(DroolsSpringJpaManager.java:116)

                                  at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:362)

                                  at org.drools.command.impl.CommandBasedStatefulKnowledgeSession.startProcess(CommandBasedStatefulKnowledgeSession.java:223)

                                  at com.cmc.jbpm.ProcessEngine.startProcess(ProcessEngine.java:49)

                                  at com.cmc.common.jbpmservice.impl.JbpmServiceImpl.initiateWorkflowJbpm(JbpmServiceImpl.java:38)

                                  at com.cmc.marriagegift.controllerservice.MarriageGiftJbpmActionService.createProcess(MarriageGiftJbpmActionService.java:122)

                                  at sun.reflect.GeneratedMethodAccessor570.invoke(Unknown Source)

                                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                                  at java.lang.reflect.Method.invoke(Method.java:597)

                                  at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)

                                  at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

                                  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

                                  at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)

                                  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

                                  at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

                                  at $Proxy675.createProcess(Unknown Source)

                                  at com.cmc.marriagegift.controller.MarriageGiftJbpmActionController.createProcess(MarriageGiftJbpmActionController.java:79)

                                  at sun.reflect.GeneratedMethodAccessor567.invoke(Unknown Source)

                                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                                  at java.lang.reflect.Method.invoke(Method.java:597)

                                  at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)

                                  at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)

                                  at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)

                                  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:746)

                                  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:687)

                                  at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)

                                  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)

                                  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)

                                  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915)

                                  at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:822)

                                  at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)

                                  at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796)

                                  at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

                                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

                                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

                                  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)

                                  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)

                                  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)

                                  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)

                                  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)

                                  at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)

                                  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

                                  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)

                                  at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)

                                  at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)

                                  at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)

                                  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

                                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

                                  at java.lang.Thread.run(Thread.java:662)

                           

                           

                          Please help me to solve this.

                          Thanks in advance.