When completing a User Task in jBPM 5 it throws "Row was updated or deleted by another transaction" exception

Solution Verified - Updated -

Issue

  • The following errors are thrown when a User Task is being completed in jBPM 5 .
11:38:27,691 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.persistence.processinstance.ProcessInstanceInfo#455]
                at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1892)
                at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2535)
                at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2435)
                at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2735)
                at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:115)
                at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:278)
                at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:262)
                at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
                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:1030)
                at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:367)
                at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:506)
                at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:101)
                at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:272)
                at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:89)
                at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:160)
                at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1433)
                at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:137)
                at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)
                at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:162)
                at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:179)
                at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:363)
                at org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:150)
                at org.jbpm.process.workitem.wsht.CommandBasedWSHumanTaskHandler$GetResultContentResponseHandler.execute(CommandBasedWSHumanTaskHandler.java:388)
                at org.jbpm.task.service.TaskClientHandler.messageReceived(TaskClientHandler.java:153)
                at org.jbpm.task.service.hornetq.HornetQTaskClientHandler.messageReceived(HornetQTaskClientHandler.java:56)
                at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:122)
                at java.lang.Thread.run(Thread.java:662)
11:38:27,692 WARN  [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_2] TwoPhaseCoordinator.beforeCompletion - failed for SynchronizationImple< a646622:a7ad:55ba2603:2bae, org.hibernate.ejb.AbstractEntityManagerImpl$1@1554a93 > Drive beforeCompletion participants.
javax.persistence.OptimisticLockException: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.persistence.processinstance.ProcessInstanceInfo#455]
                at org.hibernate.ejb.AbstractEntityManagerImpl.wrapStaleStateException(AbstractEntityManagerImpl.java:633)
                at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:590)
                at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:515)
                at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:101)
                at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:272)
                at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:89)
                at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:160)
                at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1433)
                at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:137)
                at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)
                at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:162)
                at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:179)
                at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:363)
                at org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:150)
                at org.jbpm.process.workitem.wsht.CommandBasedWSHumanTaskHandler$GetResultContentResponseHandler.execute(CommandBasedWSHumanTaskHandler.java:388)
                at org.jbpm.task.service.TaskClientHandler.messageReceived(TaskClientHandler.java:153)
                at org.jbpm.task.service.hornetq.HornetQTaskClientHandler.messageReceived(HornetQTaskClientHandler.java:56)
                at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:122)
                at java.lang.Thread.run(Thread.java:662)
Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.persistence.processinstance.ProcessInstanceInfo#455]
                at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1892)
                at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2535)
                at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2435)
                at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2735)
                at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:115)
                at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:278)
                at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:262)
                at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
                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:1030)
                at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:367)
                at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:506)
                ... 16 more
11:38:27,695 WARN  [JtaTransactionManager] Unable to commit transaction
javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Could not commit transaction.
                at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1445)
                at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:137)
                at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)
                at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:162)
                at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:179)
                at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:363)
                at org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:150)
                at org.jbpm.process.workitem.wsht.CommandBasedWSHumanTaskHandler$GetResultContentResponseHandler.execute(CommandBasedWSHumanTaskHandler.java:388)
                at org.jbpm.task.service.TaskClientHandler.messageReceived(TaskClientHandler.java:153)
                at org.jbpm.task.service.hornetq.HornetQTaskClientHandler.messageReceived(HornetQTaskClientHandler.java:56)
                at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:122)
                at java.lang.Thread.run(Thread.java:662)
Caused by: javax.persistence.OptimisticLockException: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.persistence.processinstance.ProcessInstanceInfo#455]
                at org.hibernate.ejb.AbstractEntityManagerImpl.wrapStaleStateException(AbstractEntityManagerImpl.java:633)
                at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:590)
                at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:515)
                at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:101)
                at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:272)
                at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:89)
                at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:160)
                at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1433)
                ... 11 more
Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.persistence.processinstance.ProcessInstanceInfo#455]
                at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1892)
                at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2535)
                at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2435)
                at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2735)
                at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:115)
                at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:278)
                at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:262)
                at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
                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:1030)
                at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:367)
                at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:506)
                ... 16 more

What is the root cause for this issue?

Environment

  • Red Hat JBoss BRMS (BRMS)
    • 5.3.0

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content