Jas Lam [http://community.jboss.org/people/lamj1] created the discussion
"timer 4.3 error" To view the discussion, visit: http://community.jboss.org/message/535918#535918 -------------------------------------------------------------- I modified the org.jbpm.examples.eventlistener jUnit test case slightly to introduce a timer as follow: the red code is the newly insert timer. <?xml version="1.0" encoding="UTF-8"?> <process name="EventListener" xmlns="http://jbpm.org/4.2/jpdl"> <on event="start"> <event-listener> <field name="msg"><string value="start on process definition"/></field> </event-listener> </on> <start g="17,19,48,48"> <transition to="wait"/> </start> <state name="wait" g="96,16,104,52"> <on event="start"> <event-listener> <field name="msg"><string value="start on activity wait"/></field> </event-listener> </on> <on event="NotifyRCP"> <timer duedate="5 seconds"/> <event-listener> <field name="msg"><string value="NotifyRCP"/></field> </event-listener> </on> <on event="end"> <event-listener> <field name="msg"><string value="end on activity wait"/></field> </event-listener> </on> <transition to="park"> <event-listener> <field name="msg"><string value="take transition"/></field> </event-listener> </transition> </state> <state name="park" g="231,19,80,52"/> </process> In the test case i just add an additional text to the expectedLogs and a sleep public void testEventListener() { ProcessInstance processInstance = executionService.startProcessInstanceByKey("EventListener"); List<String> expectedLogs = new ArrayList<String>(); expectedLogs.add("start on process definition"); expectedLogs.add("start on activity wait"); expectedLogs.add("NotifyRCP"); try{ Thread.sleep(6000); } catch(Exception e){} List<String> logs = (List<String>) executionService.getVariable(processInstance.getId(), "logs"); assertEquals(expectedLogs, logs); Execution execution = processInstance.findActiveExecutionIn("wait"); executionService.signalExecutionById(execution.getId()); logs = (List<String>) executionService.getVariable(processInstance.getId(), "logs"); expectedLogs.add("end on activity wait"); expectedLogs.add("take transition"); assertEquals(expectedLogs, logs); } When I run this code the first time, it always work!!!! BUT after that I kept failing when the timer triggered!!! with the following error trace. Could some one confirm this? i tried this on two separate machine and getting the same behavior. Full source code is attached. 15:09:12,216 FIN | [ExecuteActivity] execution[EventListener.50007.wait] executes activity(wait) [start on process definition, start on activity wait] 15:09:12,232 FIN | [HibernateSessionResource] ----- committing hibernate tx 23511316 ------------------------------------------------------- 15:09:12,240 FIN | [HibernateSessionResource] ----- beginning hibernate tx 31798998 -------------------------------------------------------- 15:09:12,241 FIN | [HibernateSessionResource] ----- committing hibernate tx 32102833 ------------------------------------------------------- 15:09:12,242 FIN | [HibernateSessionResource] ----- beginning hibernate tx 22677439 -------------------------------------------------------- 15:09:12,251 FIN | [HibernateSessionResource] ----- committing hibernate tx 32700170 ------------------------------------------------------- 15:09:17,210 FIN | [HibernateSessionResource] ----- beginning hibernate tx 28678425 -------------------------------------------------------- ### EXCEPTION ########################################### 15:09:17,217 SEV | [AbstractFlushingEventListener] Could not synchronize database state with session org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.pvm.internal.job.TimerImpl#50012] at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1792) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2435) at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2335) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2635) at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:115) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027) at org.jbpm.pvm.internal.tx.HibernateSessionResource.prepare(HibernateSessionResource.java:56) at org.jbpm.pvm.internal.tx.StandardTransaction.commit(StandardTransaction.java:107) at org.jbpm.pvm.internal.tx.StandardTransaction.complete(StandardTransaction.java:64) at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:61) at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53) at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40) at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55) at org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43) at org.jbpm.pvm.internal.jobexecutor.DispatcherThread.acquireJobs(DispatcherThread.java:126) at org.jbpm.pvm.internal.jobexecutor.DispatcherThread.run(DispatcherThread.java:67) ### EXCEPTION ########################################### 15:09:17,219 FIN | [HibernateSessionResource] ----- rolling back hibernate tx 28848200 ----------------------------------------------------- 15:09:17,270 FIN | [HibernateSessionResource] ----- beginning hibernate tx 1191324 -------------------------------------------------------- Thank you in advance. -------------------------------------------------------------- Reply to this message by going to Community [http://community.jboss.org/message/535918#535918] Start a new discussion in jBPM at Community [http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]
_______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
