We're working on reproducing this in the simplest manner possible. so far it seems not
to happen on HSQL.
i didnt want to add it in as a jira ticket until i was sure it wasnt just a configuration
blunder.
here are the steps we took though to reproduce the issue:
1. jbpm 3.2.1 deployed from the available EAR onto JBoss AS 4.0.5GA (on another machine we
just have the console war and the behaviour is the same)
2. postgres 8.2
3. JDK 1.5
4. standard postgres jbpm-ds.xml
5. deploy the process, literally, Start->Fork->Join->End
6. start an instance from the web console
We got a stacktrace with the remote debugger as below. The error seems to be that it is
trying to update the version of the parent token using lock while it is executing the
join. the hibernate code in the trace is trying to execute an update to increment the
version of the token and receiving a 0 record count from the update. it thinks that means
that the where clause failed and therefore it's looking for an obsolete version to
update.
if you still think this may be a bug as opposed to misconfiguration, i will enter a jira
ticket for it.
| 14:21:56,810 ERROR [STDERR] org.hibernate.StaleObjectStateException: Row was updated
or deleted by another transaction (or unsaved-value mapping was incorrect):
[org.jbpm.graph.exe.Token#41]
|
| at
org.hibernate.persister.entity.AbstractEntityPersister.forceVersionIncrement(AbstractEntityPersister.java:1191)
|
| 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:110)
|
| at org.jbpm.graph.def.Node.enter(Node.java:318)
|
| at sun.reflect.GeneratedMethodAccessor222.invoke(Unknown Source)
|
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
|
| at java.lang.reflect.Method.invoke(Method.java:585)
|
| at
org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:185)
|
| at
org.jbpm.graph.def.Node$$EnhancerByCGLIB$$205a4b1d.enter(<generated>)
|
| at org.jbpm.graph.def.Transition.take(Transition.java:151)
|
| at org.jbpm.graph.def.Node.leave(Node.java:393)
|
| at org.jbpm.graph.def.Node.leave(Node.java:357)
|
| at org.jbpm.graph.node.Fork.execute(Fork.java:142)
|
| at org.jbpm.graph.def.Node.enter(Node.java:318)
|
| at sun.reflect.GeneratedMethodAccessor222.invoke(Unknown Source)
|
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
|
| at java.lang.reflect.Method.invoke(Method.java:585)
|
| at
org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:185)
|
| at
org.jbpm.graph.def.Node$$EnhancerByCGLIB$$205a4b1d.enter(<generated>)
|
| at org.jbpm.graph.def.Transition.take(Transition.java:151)
|
| at org.jbpm.graph.def.Node.leave(Node.java:393)
|
| at org.jbpm.graph.node.StartState.leave(StartState.java:70)
|
| 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.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:185)
|
| at
org.jbpm.graph.def.Node$$EnhancerByCGLIB$$205a4b1d.leave(<generated>)
|
| at org.jbpm.graph.exe.Token.signal(Token.java:194)
|
| at org.jbpm.graph.exe.Token.signal(Token.java:165)
|
| at
org.jbpm.jsf.core.action.StartProcessActionListener.handleAction(StartProcessActionListener.java:70)
|
| at
org.jbpm.jsf.core.impl.JbpmActionListenerWrapper.processAction(JbpmActionListenerWrapper.java:82)
|
| at javax.faces.event.ActionEvent.processListener(ActionEvent.java:77)
|
| at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:758)
|
| at javax.faces.component.UICommand.broadcast(UICommand.java:368)
|
| at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:448)
|
| at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
|
| at
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
|
| at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:248)
|
| at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
|
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
|
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
|
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
|
| at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
|
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
|
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
|
| at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
|
| at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
|
| at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
|
| at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
|
| at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
|
| at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
|
| at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
|
| at
org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
|
| at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
|
| at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
|
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
|
| at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
|
| at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
|
| at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
|
| at java.lang.Thread.run(Thread.java:595)
|
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4068338#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...