jBPM 3.3.0GA and Oracle causing StaleObjectStateException
xnejp03 Nov 24, 2008 7:31 AMHi guys,
I've upgraded from 3.2.3 to 3.3.0.GA (Oracle) and getting this exception after creating a process instance :
Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.graph.exe.Token#3591] at org.hibernate.persister.entity.AbstractEntityPersister.forceVersionIncrement(AbstractEntityPersister.java:1239) at org.hibernate.event.def.AbstractLockUpgradeEventListener.upgradeLock(AbstractLockUpgradeEventListener.java:82) at org.hibernate.event.def.DefaultLockEventListener.onLock(DefaultLockEventListener.java:64) at org.hibernate.impl.SessionImpl.fireLock(SessionImpl.java:584) at org.hibernate.impl.SessionImpl.lock(SessionImpl.java:576) at org.jbpm.graph.node.Join.execute(Join.java:121) at org.jbpm.graph.def.Node.enter(Node.java:314) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173) at org.jbpm.graph.def.Node_$$_javassist_179.enter(Node_$$_javassist_179.java) at org.jbpm.graph.def.Transition.take(Transition.java:151) at org.jbpm.graph.def.Node.leave(Node.java:389) at org.jbpm.graph.def.Node.leave(Node.java:353) at org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:120) at uk.co.ondemand.portal.workflow.actions.AbstractNodeActionHandler.execute(AbstractNodeActionHandler.java:50) at org.jbpm.graph.def.Action.execute(Action.java:129) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173) at org.jbpm.graph.def.Action_$$_javassist_193.execute(Action_$$_javassist_193.java) at org.jboss.seam.bpm.SeamUserCodeInterceptor$1.process(SeamUserCodeInterceptor.java:80) at org.jboss.seam.bpm.SeamUserCodeInterceptor$ContextualCall.run(SeamUserCodeInterceptor.java:33) at org.jboss.seam.bpm.SeamUserCodeInterceptor.executeAction(SeamUserCodeInterceptor.java:74) at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:254) ... 171 more
The process is here:
<?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="" name="testProcess"> <swimlane name="test_swimlane"> <assignment pooled-actors="gQAUsers"></assignment> </swimlane> <start-state name="start-state1"> <transition to="automated node"></transition> </start-state> <node name="automated node"> <action name="write to db 1" class="uk.co.ondemand.cmm.service.workflow.handlers.MyActionHandler"></action> <transition to="fork1"></transition> </node> <task-node name="confirm node"> <task name="task1" duedate="#{dueDate} + 5 business days" swimlane="test_swimlane"> <description> This is task description </description> <controller> <variable access="read,write" name="myVariable" mapped-name="myTaskVariable"></variable> </controller> </task> <transition to="join1"></transition> </task-node> <node name="write"> <action class="uk.co.ondemand.cmm.service.workflow.handlers.MyActionHandler"></action> <transition to="end-state1"></transition> </node> <fork name="fork1"> <transition to="confirm node" name="confirm"></transition> <transition to="automated node 2" name="auto"></transition> </fork> <join name="join1"> <transition to="write"></transition> </join> <node name="automated node 2"> <action class="uk.co.ondemand.cmm.service.workflow.handlers.MyActionHandler"></action> <transition to="join1"></transition> </node> <end-state name="end-state1"></end-state> </process-definition>
I found this issue: https://jira.jboss.org/jira/browse/JBPM-1772 which looks like a flush() has been removed which previously fixed an Oracle bug. Could this be the problem?
Cheers,
Petr