I have a process definition which includes a couple of timers; one on a state and another on a superstate. The timer on the state works as expected. However, when my process reaches the superstate it throws a StaleObjectStateException. Also, the timer seems to execute, but for each of the superstate's sub states as well as the superstate. Each time the timer repeats I see the same error.
I've looked around the forum / Jira amd can't see that anyone else has observed this problem. My process definition is as follows: <state name="State 1"> | <timer duedate="20 seconds" repeat="20 seconds" name="late leaving"> | <script> | System.out.println("What are we waiting for ? "); | </script> | </timer> | <transition to="Moving" name="depart"></transition> | </state> | | <super-state name="Moving"> | <state name="Stopped"> | <transition to="Started" name="start"></transition> | </state> | <state name="Started"> | <transition to="Stopped" name="stop"></transition> | </state> | <timer duedate="30 seconds" repeat="30 seconds"> | <script> | System.out.println("We're late "); | </script> | </timer> | <transition to="end-state1" name="arrive"></transition> | </super-state> Produces the following: anonymous wrote : 10:56:40,515 INFO [STDOUT] We're late | 10:56:40,562 INFO [STDOUT] We're late | 10:56:40,609 ERROR [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.graph.exe.Token#578] | at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1765) | at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2407) | at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2307) | at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2607) | at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92) | 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:142) | 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.CacheSynchronization.beforeCompletion(CacheSynchronization.java:59) | at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:114) | at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:247) | at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:86) | at com.arjuna.ats.arjuna.AtomicAction.end(AtomicAction.java:216) | at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commit(TransactionImple.java:240) | at org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:501) | at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:361) | at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181) | at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168) | at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) | at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138) | at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:527) | at org.jboss.ejb.Container.invoke(Container.java:960) | at org.jboss.ejb.txtimer.TimedObjectInvokerImpl.callTimeout(TimedObjectInvokerImpl.java:99) | at org.jboss.ejb.txtimer.TimerImpl$TimerTaskImpl.run(TimerImpl.java:561) | at java.util.TimerThread.mainLoop(Unknown Source) | at java.util.TimerThread.run(Unknown Source) | 10:56:40,609 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_2] TwoPhaseCoordinator.beforeCompletion - failed for com.arjuna.ats.internal.jta.resources.arjunacore.synchronizationim...@1a40ea6 | org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.graph.exe.Token#578] | at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1765) | at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2407) | at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2307) | at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2607) | at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92) | 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:142) | 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.CacheSynchronization.beforeCompletion(CacheSynchronization.java:59) | at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:114) | at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:247) | at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:86) | at com.arjuna.ats.arjuna.AtomicAction.end(AtomicAction.java:216) | at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commit(TransactionImple.java:240) | at org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:501) | at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:361) | at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181) | at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168) | at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) | at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138) | at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:527) | at org.jboss.ejb.Container.invoke(Container.java:960) | at org.jboss.ejb.txtimer.TimedObjectInvokerImpl.callTimeout(TimedObjectInvokerImpl.java:99) | at org.jboss.ejb.txtimer.TimerImpl$TimerTaskImpl.run(TimerImpl.java:561) | at java.util.TimerThread.mainLoop(Unknown Source) | at java.util.TimerThread.run(Unknown Source) | 10:56:40,609 ERROR [LogInterceptor] TransactionRolledbackLocalException in method: public abstract void javax.ejb.TimedObject.ejbTimeout(javax.ejb.Timer), causedBy: | javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state | at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commit(TransactionImple.java:255) | at org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:501) | at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:361) | at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181) | at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168) | at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) | at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138) | at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:527) | at org.jboss.ejb.Container.invoke(Container.java:960) | at org.jboss.ejb.txtimer.TimedObjectInvokerImpl.callTimeout(TimedObjectInvokerImpl.java:99) | at org.jboss.ejb.txtimer.TimerImpl$TimerTaskImpl.run(TimerImpl.java:561) | at java.util.TimerThread.mainLoop(Unknown Source) | at java.util.TimerThread.run(Unknown Source) | Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.graph.exe.Token#578] | at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1765) | at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2407) | at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2307) | at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2607) | at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92) | 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:142) | 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.CacheSynchronization.beforeCompletion(CacheSynchronization.java:59) | at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:114) | at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:247) | at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:86) | at com.arjuna.ats.arjuna.AtomicAction.end(AtomicAction.java:216) | at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commit(TransactionImple.java:240) | ... 12 more | 10:56:40,609 ERROR [TimerImpl] Error invoking ejbTimeout: org.jboss.tm.JBossTransactionRolledbackLocalException: - nested throwable: (javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit because the transaction is in aborted state) | 10:56:40,781 INFO [STDOUT] We're late | 10:57:10,468 INFO [STDOUT] We're late | 10:57:10,578 INFO [STDOUT] We're late View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4257203#4257203 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4257203 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user