help ,error while use timer
startbomb Dec 4, 2008 2:03 AMthis processdefinition:
<?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="" name="tt"> <start-state name="start-state1"> <transition to="node4"></transition> </start-state> <state name="node4"> <timer duedate="10 second" name="aa" transition="timeout"> <script> System.out.println("----------------->time out"); </script> </timer> <transition to="fork1" name="timeout"></transition> </state> <fork name="fork1"> <transition to="join1"></transition> </fork> <join name="join1"> <transition to="end-state1"></transition> </join> <end-state name="end-state1"></end-state> </process-definition>
while the timer 'aa' arrives the duedate,there will be a exception:
2008-12-04 14:53:05,737 [] ERROR def.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.job.Timer#43]
at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1765)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2523)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2697)
at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:74)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:146)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at org.jbpm.persistence.db.DbPersistenceService.commit(DbPersistenceService.java:260)
at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:218)
at org.jbpm.svc.Services.close(Services.java:223)
at org.jbpm.JbpmContext.close(JbpmContext.java:139)
at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
but if the transition of the timer dosen't point to a fork,for example a state ,there won't have such exception. can angbody help me?