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

Reply via email to