[rules-users] Flow persistence

Mauricio Salatino salaboy at gmail.com
Tue Jun 15 21:47:10 EDT 2010


oh.. sorry.. you are creating a new env per each session.. but the problem
is related with that..
I will review that and let you know.

On Tue, Jun 15, 2010 at 9:45 PM, Mauricio Salatino <salaboy at gmail.com>wrote:

> yes the problem is the environment.. I saw that problem in the past..
> you need to create a separate environment object per each session.
>
>
>
> On Tue, Jun 15, 2010 at 9:41 PM, Rob Collins <
> RCollins at patientsafesolutions.com> wrote:
>
>> The idea of the tests is to ensure that our implementation is thread-safe.
>> Each thread in the test creates its own Drools session and executes its own
>> workflow (which contains actions and work items that involve user
>> interaction that is simulated by the unit test).
>>
>> This scenario tests the real-world case of our server handling sessions
>> from multiple users. There should NOT be cross-talk between these sessions.
>> Without persistence, everything works as expected. With persistence enabled,
>> two sessions running in parallel are enough to fail 100% of the time.
>>
>> Each thread creates a session like this:
>>            session =
>> JPAKnowledgeService.newStatefulKnowledgeSession(getKnowledgeBase(), null,
>> getEnvironment());
>>
>> The calls to getEnvironment() return the same value each time it is called
>> called. Is this right?
>>
>> The environment is created like this:
>>            EntityManagerFactory emf =
>> Persistence.createEntityManagerFactory("org.drools.persistence.jpa");
>>            environment = KnowledgeBaseFactory.newEnvironment();
>>            environment.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf);
>>
>> Any idea where I messed up?
>>
>> Thanks,
>> Rob
>>
>>
>> On Jun 15, 2010, at 5:58 PM, Mauricio Salatino wrote:
>>
>> What kind of thread safe tests are you doing?
>> if multiple threads modify the status of the process, only one of them
>> will commit the new status, and the other ones will rollback the transaction
>> because of a bad state.
>>
>> Is that what you are looking for?
>>
>>
>> On Tue, Jun 15, 2010 at 3:33 PM, Rob Collins <
>> RCollins at patientsafesolutions.com<mailto:
>> RCollins at patientsafesolutions.com>> wrote:
>> We are using version 5.1.0.M1. We have long-running processes (flows).
>> They are long-running because we have work item nodes that involve the user
>> of our application to do something. We are in the development cycle of our
>> product and everything is going well. I am trying to configure persistence
>> and running into some issues.
>>
>> I am to the point where our basic unit tests appear to be running fine
>> with persistence enabled both in the container (tomcat6) and in our unit
>> testing environment (ServletUnit).
>>
>> We have unit tests that run the same test  in multiple threads in parallel
>> (the idea is to try to expose thread safety issues), and these tests always
>> fail. At the end of this message, I have pasted a few of the different stack
>> traces I have seen.
>>
>> I expect that I have done something silly in the configuration, and I
>> could use some help in finding it. I am not sure if the problem is my
>> configuration of JPA, Hibernate, the DataSource, or if it is an interaction
>> between what Drools is expecting and the details of my configuration.
>>
>> Thanks,
>> Rob Collins
>>
>>
>> >From my spring configuration:
>>
>>   <!-- Spring JtaTransactionManager -->
>>   <bean id="transactionManager"
>> class="org.springframework.transaction.jta.JtaTransactionManager"
>>       depends-on="bitronixTransactionManager">
>>       <property name="transactionManager" ref="bitronixTransactionManager"
>> />
>>       <property name="userTransaction" ref="bitronixTransactionManager" />
>>   </bean>
>>
>>   <!--  Bitronix Transaction Manager embedded configuration -->
>>   <bean id="btmConfig" class="bitronix.tm.TransactionManagerServices"
>> factory-method="getConfiguration">
>>       <property name="serverId" value="spring-btm" />
>>   </bean>
>>
>>   <!-- create Bitronix Transaction Manager transaction manager -->
>>   <bean id="bitronixTransactionManager"
>> class="bitronix.tm.TransactionManagerServices"
>>       factory-method="getTransactionManager" depends-on="btmConfig"
>>       destroy-method="shutdown" />
>>
>>   <bean id="sessionDataSource"
>> class="bitronix.tm.resource.jdbc.PoolingDataSource" init-method="init"
>> destroy-method="close">
>>       <property name="className"
>> value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" />
>>       <property name="uniqueName" value="jdbc/processInstanceDS" />
>>       <property name="maxPoolSize" value="8" />
>>       <property name="allowLocalTransactions" value="true" />
>>       <property name="driverProperties">
>>           <props>
>>               <prop key="URL">${db.session.connection.url}</prop>
>>               <prop key="user">${db.session.username}</prop>
>>               <prop key="password">${db.session.password}</prop>
>>           </props>
>>       </property>
>>   </bean>
>>
>> My persistence.xml:
>> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>> <persistence version="1.0"
>> xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
>>    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd
>>    http://java.sun.com/xml/ns/persistence/orm
>>    http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
>> xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xmlns="http://java.sun.com/xml/ns/persistence">
>>
>> <persistence-unit name="org.drools.persistence.jpa">
>> <provider>org.hibernate.ejb.HibernatePersistence</provider>
>> <jta-data-source>jdbc/processInstanceDS</jta-data-source>
>> <class>org.drools.persistence.session.SessionInfo</class>
>> <class>org.drools.persistence.processinstance.ProcessInstanceInfo</class>
>>
>> <class>org.drools.persistence.processinstance.ProcessInstanceEventInfo</class>
>> <class>org.drools.persistence.processinstance.WorkItemInfo</class>
>>
>> <class>org.drools.persistence.processinstance.variabletypes.VariableInstanceInfo</class>
>>
>> <class>org.drools.persistence.processinstance.variabletypes.JPAPersistedVariable</class>
>>
>> <properties>
>> <property name="hibernate.max_fetch_depth" value="3" />
>>           <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
>> <property name="hibernate.show_sql" value="true" />
>> <property name="hibernate.transaction.manager_lookup_class"
>>   value="org.hibernate.transaction.BTMTransactionManagerLookup" />
>> <property name="hibernate.jndi.class"
>> value="bitronix.tm.jndi.BitronixInitialContextFactory" />
>> </properties>
>> </persistence-unit>
>> </persistence>
>>
>>
>>
>>
>> java.lang.NullPointerException
>> at
>> org.drools.persistence.processinstance.JPAProcessInstanceManager.addProcessInstance(JPAProcessInstanceManager.java:33)
>> at
>> org.drools.process.instance.AbstractProcessInstanceFactory.createProcessInstance(AbstractProcessInstanceFactory.java:37)
>> at
>> org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1706)
>> at
>> org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1682)
>> at
>> org.drools.workflow.instance.node.SubProcessNodeInstance.internalTrigger(SubProcessNodeInstance.java:115)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:148)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:135)
>> at
>> org.drools.workflow.instance.node.JoinInstance.triggerCompleted(JoinInstance.java:152)
>> at
>> org.drools.workflow.instance.node.JoinInstance.internalTrigger(JoinInstance.java:52)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:148)
>> at
>> org.drools.workflow.instance.node.SplitInstance.internalTrigger(SplitInstance.java:74)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:148)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:135)
>> at
>> org.drools.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:49)
>> at
>> org.drools.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:41)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112)
>> at
>> org.drools.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:16)
>> at
>> org.drools.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:185)
>> at
>> org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:230)
>> at
>> org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1689)
>> at
>> org.drools.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:289)
>> at
>> org.drools.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:52)
>> at
>> org.drools.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:14)
>> at
>> org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:254)
>> at
>> org.drools.command.impl.CommandBasedStatefulKnowledgeSession.startProcess(CommandBasedStatefulKnowledgeSession.java:163)
>> at
>> com.patientsafesolutions.application.controllers.DroolsWorkflowController.startWorkflowProcess(DroolsWorkflowController.java:310)
>> at
>> com.patientsafesolutions.application.controllers.DroolsWorkflowController.drools(DroolsWorkflowController.java:85)
>> 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
>> org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710)
>> at
>> org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167)
>> at
>> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414)
>> at
>> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402)
>> at
>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
>> at
>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
>> at
>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
>> at
>> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>> at
>> com.meterware.servletunit.InvocationContextImpl.service(InvocationContextImpl.java:76)
>> at
>> com.meterware.servletunit.ServletUnitClient.newResponse(ServletUnitClient.java:126)
>> at com.meterware.httpunit.WebClient.createResponse(WebClient.java:667)
>> at com.meterware.httpunit.WebWindow.getResource(WebWindow.java:220)
>> at
>> com.meterware.httpunit.WebWindow.getSubframeResponse(WebWindow.java:181)
>> at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:158)
>> at com.meterware.httpunit.WebClient.getResponse(WebClient.java:122)
>> at com.patientsafesolutions.test.http.Request.submit(Request.java:115)
>> at com.patientsafesolutions.test.http.Request.post(Request.java:20)
>> at
>> com.patientsafesolutions.api.httptest.LogicalViewHttpTest.navigateToHome(LogicalViewHttpTest.java:57)
>> at
>> com.patientsafesolutions.api.httptest.LogicalViewHttpTest.navigateToPatient(LogicalViewHttpTest.java:100)
>> at
>> com.patientsafesolutions.api.httptest.HomeTests.homeLogicalView(HomeTests.java:14)
>> at
>> com.patientsafesolutions.api.httptest.HomeTests$1.run(HomeTests.java:23)
>> at
>> com.patientsafesolutions.test.http.HttpTest$ThreadWithThrowable$1.run(HttpTest.java:241)
>> at java.lang.Thread.run(Thread.java:637)
>>
>> org.hibernate.exception.GenericJDBCException: Cannot release connection
>> at
>> org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
>> at
>> org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
>> at
>> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
>> at
>> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
>> at
>> org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:455)
>> at
>> org.hibernate.jdbc.ConnectionManager.aggressiveRelease(ConnectionManager.java:406)
>> at
>> org.hibernate.jdbc.ConnectionManager.afterTransaction(ConnectionManager.java:298)
>> at
>> org.hibernate.jdbc.JDBCContext.afterTransactionCompletion(JDBCContext.java:225)
>> at
>> org.hibernate.transaction.CacheSynchronization.afterCompletion(CacheSynchronization.java:85)
>> at
>> bitronix.tm.BitronixTransaction.fireAfterCompletionEvent(BitronixTransaction.java:416)
>> at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:195)
>> at
>> bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:95)
>> at
>> org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:258)
>> at
>> org.drools.command.impl.CommandBasedStatefulKnowledgeSession.startProcess(CommandBasedStatefulKnowledgeSession.java:163)
>> at
>> com.patientsafesolutions.application.controllers.DroolsWorkflowController.startWorkflowProcess(DroolsWorkflowController.java:310)
>> at
>> com.patientsafesolutions.application.controllers.DroolsWorkflowController.drools(DroolsWorkflowController.java:85)
>> 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
>> org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710)
>> at
>> org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167)
>> at
>> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414)
>> at
>> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402)
>> at
>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
>> at
>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
>> at
>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
>> at
>> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>> at
>> com.meterware.servletunit.InvocationContextImpl.service(InvocationContextImpl.java:76)
>> at
>> com.meterware.servletunit.ServletUnitClient.newResponse(ServletUnitClient.java:126)
>> at com.meterware.httpunit.WebClient.createResponse(WebClient.java:667)
>> at com.meterware.httpunit.WebWindow.getResource(WebWindow.java:220)
>> at
>> com.meterware.httpunit.WebWindow.getSubframeResponse(WebWindow.java:181)
>> at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:158)
>> at com.meterware.httpunit.WebClient.getResponse(WebClient.java:122)
>> at com.patientsafesolutions.test.http.Request.submit(Request.java:115)
>> at com.patientsafesolutions.test.http.Request.post(Request.java:20)
>> at
>> com.patientsafesolutions.api.httptest.LogicalViewHttpTest.navigateToHome(LogicalViewHttpTest.java:57)
>> at
>> com.patientsafesolutions.api.httptest.LogicalViewHttpTest.navigateToPatient(LogicalViewHttpTest.java:100)
>> at
>> com.patientsafesolutions.api.httptest.HomeTests.homeLogicalView(HomeTests.java:14)
>> at
>> com.patientsafesolutions.api.httptest.HomeTests$1.run(HomeTests.java:23)
>> at
>> com.patientsafesolutions.test.http.HttpTest$ThreadWithThrowable$1.run(HttpTest.java:241)
>> at java.lang.Thread.run(Thread.java:637)
>> Caused by: java.sql.SQLException: error requeueing a JdbcPooledConnection
>> from datasource jdbc/processInstanceDS in state ACCESSIBLE wrapping
>> com.mysql.jdbc.jdbc2.optional.MysqlXAConnection at 4128dca6
>> at
>> bitronix.tm.resource.jdbc.JdbcPooledConnection.release(JdbcPooledConnection.java:148)
>> at
>> bitronix.tm.resource.jdbc.JdbcConnectionHandle.close(JdbcConnectionHandle.java:77)
>> at
>> org.hibernate.connection.DatasourceConnectionProvider.closeConnection(DatasourceConnectionProvider.java:74)
>> at
>> org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:451)
>> ... 40 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:117)
>> at
>> bitronix.tm.resource.jdbc.JdbcPooledConnection.release(JdbcPooledConnection.java:146)
>> ... 43 more
>>
>>
>> java.lang.IllegalArgumentException: Unknown node instance type:
>> org.drools.workflow.instance.node.ActionNodeInstance at 2b7194a4
>> at
>> org.drools.marshalling.impl.AbstractProcessInstanceMarshaller.writeNodeInstanceContent(AbstractProcessInstanceMarshaller.java:243)
>> at
>> org.drools.marshalling.impl.AbstractProcessInstanceMarshaller.writeNodeInstance(AbstractProcessInstanceMarshaller.java:117)
>> at
>> org.drools.marshalling.impl.AbstractProcessInstanceMarshaller.writeProcessInstance(AbstractProcessInstanceMarshaller.java:106)
>> at
>> org.drools.persistence.processinstance.ProcessInstanceInfo.update(ProcessInstanceInfo.java:237)
>> 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 org.hibernate.ejb.event.BeanCallback.invoke(BeanCallback.java:23)
>> at
>> org.hibernate.ejb.event.EntityCallbackHandler.callback(EntityCallbackHandler.java:80)
>> at
>> org.hibernate.ejb.event.EntityCallbackHandler.preUpdate(EntityCallbackHandler.java:65)
>> at
>> org.hibernate.ejb.event.EJB3FlushEntityEventListener.invokeInterceptor(EJB3FlushEntityEventListener.java:41)
>> at
>> org.hibernate.event.def.DefaultFlushEntityEventListener.handleInterception(DefaultFlushEntityEventListener.java:308)
>> at
>> org.hibernate.event.def.DefaultFlushEntityEventListener.scheduleUpdate(DefaultFlushEntityEventListener.java:248)
>> at
>> org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:128)
>> at
>> org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:196)
>> at
>> org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
>> at
>> org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:35)
>> at
>> org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)
>> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
>> at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>> at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:67)
>> at
>> org.drools.persistence.processinstance.JPASignalManager.getProcessInstancesForEvent(JPASignalManager.java:53)
>> at
>> org.drools.persistence.processinstance.JPASignalManager.signalEvent(JPASignalManager.java:29)
>> at
>> org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl.setState(WorkflowProcessInstanceImpl.java:191)
>> at
>> org.drools.workflow.instance.node.EndNodeInstance.internalTrigger(EndNodeInstance.java:56)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:148)
>> at
>> org.drools.workflow.instance.node.SplitInstance.internalTrigger(SplitInstance.java:74)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:148)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:135)
>> at
>> org.drools.workflow.instance.node.ActionNodeInstance.triggerCompleted(ActionNodeInstance.java:62)
>> at
>> org.drools.workflow.instance.node.ActionNodeInstance.internalTrigger(ActionNodeInstance.java:58)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:148)
>> at
>> org.drools.workflow.instance.node.SplitInstance.internalTrigger(SplitInstance.java:74)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:148)
>> at
>> org.drools.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:135)
>> at
>> org.drools.workflow.instance.impl.ExtendedNodeInstanceImpl.triggerCompleted(ExtendedNodeInstanceImpl.java:37)
>> at
>> org.drools.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:101)
>> at
>> org.drools.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:82)
>> at
>> org.drools.workflow.instance.node.WorkItemNodeInstance.triggerCompleted(WorkItemNodeInstance.java:192)
>> at
>> org.drools.workflow.instance.node.WorkItemNodeInstance.workItemCompleted(WorkItemNodeInstance.java:246)
>> at
>> org.drools.workflow.instance.node.WorkItemNodeInstance.signalEvent(WorkItemNodeInstance.java:222)
>> at
>> org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl.signalEvent(WorkflowProcessInstanceImpl.java:258)
>> at
>> org.drools.persistence.processinstance.JPAWorkItemManager.completeWorkItem(JPAWorkItemManager.java:96)
>> at
>> org.drools.command.runtime.process.CompleteWorkItemCommand.execute(CompleteWorkItemCommand.java:46)
>> at
>> org.drools.command.runtime.process.CompleteWorkItemCommand.execute(CompleteWorkItemCommand.java:12)
>> at
>> org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:254)
>> at
>> org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:118)
>> at
>> com.patientsafesolutions.application.controllers.DroolsWorkflowController.drools(DroolsWorkflowController.java:113)
>> 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
>> org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710)
>> at
>> org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167)
>> at
>> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414)
>> at
>> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402)
>> at
>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
>> at
>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
>> at
>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
>> at
>> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>> at
>> com.meterware.servletunit.InvocationContextImpl.service(InvocationContextImpl.java:76)
>> at
>> com.meterware.servletunit.ServletUnitClient.newResponse(ServletUnitClient.java:126)
>> at com.meterware.httpunit.WebClient.createResponse(WebClient.java:667)
>> at com.meterware.httpunit.WebWindow.getResource(WebWindow.java:220)
>> at
>> com.meterware.httpunit.WebWindow.getSubframeResponse(WebWindow.java:181)
>> at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:158)
>> at com.meterware.httpunit.WebClient.getResponse(WebClient.java:122)
>> at com.patientsafesolutions.test.http.Request.submit(Request.java:115)
>> at com.patientsafesolutions.test.http.Request.post(Request.java:25)
>> at
>> com.patientsafesolutions.api.httptest.LogicalViewHttpTest.loginUser(LogicalViewHttpTest.java:80)
>> at
>> com.patientsafesolutions.api.httptest.LogicalViewHttpTest.navigateToPatient(LogicalViewHttpTest.java:102)
>> at
>> com.patientsafesolutions.api.httptest.HomeTests.homeLogicalView(HomeTests.java:14)
>> at
>> com.patientsafesolutions.api.httptest.HomeTests$1.run(HomeTests.java:23)
>> at
>> com.patientsafesolutions.test.http.HttpTest$ThreadWithThrowable$1.run(HttpTest.java:241)
>> at java.lang.Thread.run(Thread.java:637)
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org<mailto:rules-users at lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>>
>> --
>> - CTO @ http://www.plugtree.com<http://www.plugtree.com/>
>> - MyJourney @ http://salaboy.wordpress.com<http://salaboy.wordpress.com/>
>> - Co-Founder @ http://www.jbug.com.ar<http://www.jbug.com.ar/>
>>
>> - Salatino "Salaboy" Mauricio -
>> <ATT00001..txt>
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>
>
>
> --
> - CTO @ http://www.plugtree.com
> - MyJourney @ http://salaboy.wordpress.com
> - Co-Founder @ http://www.jbug.com.ar
>
> - Salatino "Salaboy" Mauricio -
>



-- 
- CTO @ http://www.plugtree.com
- MyJourney @ http://salaboy.wordpress.com
- Co-Founder @ http://www.jbug.com.ar

- Salatino "Salaboy" Mauricio -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100615/60ca192a/attachment.html 


More information about the rules-users mailing list