[jboss-user] [JBoss jBPM] - jBPM 3.3.0GA and Oracle causing StaleObjectStateException

xnejp03 do-not-reply at jboss.com
Mon Nov 24 07:31:14 EST 2008


Hi 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

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4191727#4191727

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4191727



More information about the jboss-user mailing list