From do-not-reply at jboss.com Sun Sep 27 06:25:28 2009 Content-Type: multipart/mixed; boundary="===============9098150669791214174==" MIME-Version: 1.0 From: aapthorp To: jbpm-users at lists.jboss.org Subject: [jbpm-users] [jBPM Users] - superstate timer error Date: Sun, 27 Sep 2009 06:25:28 -0400 Message-ID: <28212459.1254047128789.JavaMail.jboss@nukes01.app.mwc.hst.phx2.redhat.com> --===============9098150669791214174== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable I have a process definition which includes a couple of timers; one on a sta= te and another on a superstate. The timer on the state works as expected. = However, when my process reaches the superstate it throws a StaleObjectStat= eException. Also, the timer seems to execute, but for each of the superstat= e'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 obse= rved this problem. My process definition is as follows: | | | | | | = | | | | | | | | | | | | 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 synchroniz= e database state with session | org.hibernate.StaleObjectStateException: Row was updated or deleted by = another transaction (or unsaved-value mapping was incorrect): [org.jbpm.gra= ph.exe.Token#578] | at org.hibernate.persister.entity.AbstractEntityPersister.check(Abstra= ctEntityPersister.java:1765) | at org.hibernate.persister.entity.AbstractEntityPersister.update(Abstr= actEntityPersister.java:2407) | at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInse= rt(AbstractEntityPersister.java:2307) | at org.hibernate.persister.entity.AbstractEntityPersister.update(Abstr= actEntityPersister.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:23= 4) | at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:14= 2) | at org.hibernate.event.def.AbstractFlushingEventListener.performExecut= ions(AbstractFlushingEventListener.java:298) | at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFl= ushEventListener.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(Cac= heSynchronization.java:59) | at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImp= le.beforeCompletion(SynchronizationImple.java:114) | at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeComplet= ion(TwoPhaseCoordinator.java:247) | at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseC= oordinator.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(TxInterceptor= CMT.java:501) | at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterc= eptorCMT.java:361) | at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java= :181) | at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityIntercepto= r.java:168) | at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) | at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFac= toryFinderInterceptor.java:138) | at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:5= 27) | at org.jboss.ejb.Container.invoke(Container.java:960) | at org.jboss.ejb.txtimer.TimedObjectInvokerImpl.callTimeout(TimedObjec= tInvokerImpl.java:99) | at org.jboss.ejb.txtimer.TimerImpl$TimerTaskImpl.run(TimerImpl.java:56= 1) | 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.T= woPhaseCoordinator_2] TwoPhaseCoordinator.beforeCompletion - failed for com= .arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple(a)1a40ea6 | org.hibernate.StaleObjectStateException: Row was updated or deleted by = another transaction (or unsaved-value mapping was incorrect): [org.jbpm.gra= ph.exe.Token#578] | at org.hibernate.persister.entity.AbstractEntityPersister.check(Abstra= ctEntityPersister.java:1765) | at org.hibernate.persister.entity.AbstractEntityPersister.update(Abstr= actEntityPersister.java:2407) | at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInse= rt(AbstractEntityPersister.java:2307) | at org.hibernate.persister.entity.AbstractEntityPersister.update(Abstr= actEntityPersister.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:23= 4) | at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:14= 2) | at org.hibernate.event.def.AbstractFlushingEventListener.performExecut= ions(AbstractFlushingEventListener.java:298) | at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFl= ushEventListener.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(Cac= heSynchronization.java:59) | at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImp= le.beforeCompletion(SynchronizationImple.java:114) | at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeComplet= ion(TwoPhaseCoordinator.java:247) | at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseC= oordinator.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(TxInterceptor= CMT.java:501) | at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterc= eptorCMT.java:361) | at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java= :181) | at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityIntercepto= r.java:168) | at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) | at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFac= toryFinderInterceptor.java:138) | at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:5= 27) | at org.jboss.ejb.Container.invoke(Container.java:960) | at org.jboss.ejb.txtimer.TimedObjectInvokerImpl.callTimeout(TimedObjec= tInvokerImpl.java:99) | at org.jboss.ejb.txtimer.TimerImpl$TimerTaskImpl.run(TimerImpl.java:56= 1) | 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.trans= action.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transacti= on.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(TxInterceptor= CMT.java:501) | at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterc= eptorCMT.java:361) | at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java= :181) | at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityIntercepto= r.java:168) | at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) | at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFac= toryFinderInterceptor.java:138) | at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:5= 27) | at org.jboss.ejb.Container.invoke(Container.java:960) | at org.jboss.ejb.txtimer.TimedObjectInvokerImpl.callTimeout(TimedObjec= tInvokerImpl.java:99) | at org.jboss.ejb.txtimer.TimerImpl$TimerTaskImpl.run(TimerImpl.java:56= 1) | 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): [o= rg.jbpm.graph.exe.Token#578] | at org.hibernate.persister.entity.AbstractEntityPersister.check(Abstra= ctEntityPersister.java:1765) | at org.hibernate.persister.entity.AbstractEntityPersister.update(Abstr= actEntityPersister.java:2407) | at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInse= rt(AbstractEntityPersister.java:2307) | at org.hibernate.persister.entity.AbstractEntityPersister.update(Abstr= actEntityPersister.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:23= 4) | at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:14= 2) | at org.hibernate.event.def.AbstractFlushingEventListener.performExecut= ions(AbstractFlushingEventListener.java:298) | at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFl= ushEventListener.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(Cac= heSynchronization.java:59) | at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImp= le.beforeCompletion(SynchronizationImple.java:114) | at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeComplet= ion(TwoPhaseCoordinator.java:247) | at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseC= oordinator.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.transa= ction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacor= e.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.co= mmitwhenaborted] 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=3Dbb&op=3Dv= iewtopic&p=3D4257203#4257203 Reply to the post : http://www.jboss.org/index.html?module=3Dbb&op=3Dpostin= g&mode=3Dreply&p=3D4257203 --===============9098150669791214174==--