JBoss Community

Could not synchronize database state with session:org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect)

created by Krisv W in jBPM - View the full discussion

Hi,everybody!

I have a process with two User Task Nodes. When completing the first one by excuting “client.complete(taskId, userId, contentData);”, the console shows as follows. But the second one has started for its state is Reserved in the database table Task . From the console info, it seems the reason is that anther transaction has updated the record of ProcessInstanceInfo. But I do not know what it is, who can tell me? And No idea how to fix it.  Please help :(

Thanks in advance.

 

Hibernate: update ProcessInstanceInfo set OPTLOCK=?, processId=?, startDate=?, lastReadDate=?, lastModificationDate=?, state=?, processInstanceByteArray=? where InstanceId=? and OPTLOCK=?

2013-4-25 2:02:37 org.hibernate.event.def.AbstractFlushingEventListener performExecutions

严重: 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#1]

    at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1782)

    at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2425)

    at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2325)

    at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2625)

    at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:115)

    at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)

    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)

    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)

    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:1028)

    at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)

    at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:504)

    at bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:478)

    at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:193)

    at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:120)

    at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:179)

    at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:371)

    at org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:150)

    at org.jbpm.process.workitem.wsht.GenericHTWorkItemHandler$TaskCompletedHandler.handleCompletedTask(GenericHTWorkItemHandler.java:219)

    at org.jbpm.process.workitem.wsht.GenericHTWorkItemHandler$TaskCompletedHandler$1.run(GenericHTWorkItemHandler.java:187)

    at java.lang.Thread.run(Thread.java:619)

2013-4-25 2:02:37 org.drools.persistence.jta.JtaTransactionManager commit

警告: Unable to commit transaction

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#1]

    at org.hibernate.ejb.AbstractEntityManagerImpl.wrapStaleStateException(AbstractEntityManagerImpl.java:630)

    at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:588)

    at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:513)

    at bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:478)

    at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:193)

    at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:120)

    at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:179)

    at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:371)

    at org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:150)

    at org.jbpm.process.workitem.wsht.GenericHTWorkItemHandler$TaskCompletedHandler.handleCompletedTask(GenericHTWorkItemHandler.java:219)

    at org.jbpm.process.workitem.wsht.GenericHTWorkItemHandler$TaskCompletedHandler$1.run(GenericHTWorkItemHandler.java:187)

    at java.lang.Thread.run(Thread.java:619)

Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.persistence.processinstance.ProcessInstanceInfo#1]

    at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1782)

    at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2425)

    at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2325)

    at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2625)

    at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:115)

    at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)

    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)

    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)

    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:1028)

    at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)

    at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:504)

    ... 9 more

2013-4-25 2:02:37 org.drools.persistence.SingleSessionCommandService rollbackTransaction

Reply to this message by going to Community

Start a new discussion in jBPM at Community