Timer throwing exception intermittently
sridhar18 Oct 28, 2009 4:47 PMHi,
I'm getting the following error at times when my timers are firing.
11:19:51,157 ERROR [ExecuteJobCmd] exception while executing 'timer[46|2009-10-28 11:19:51,040|timeout]'
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [org.jbpm.pvm.internal.model.ExecutionImpl#152]
at org.hibernate.impl.SessionFactoryImpl$2.handleEntityNotFound(SessionFactoryImpl.java:409)
at org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:108)
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:97)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:140)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)
at org.jbpm.pvm.internal.model.ExecutionImpl_$$_javassist_4.getActivity(ExecutionImpl_$$_javassist_4.java)
at org.jbpm.pvm.internal.job.TimerImpl.execute(TimerImpl.java:94)
at org.jbpm.pvm.internal.job.TimerImpl.execute(TimerImpl.java:52)
at org.jbpm.pvm.internal.cmd.ExecuteJobCmd.execute(ExecuteJobCmd.java:76)
at org.jbpm.pvm.internal.cmd.ExecuteJobCmd.execute(ExecuteJobCmd.java:42)
at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
at org.jbpm.pvm.internal.tx.jta.JtaTransactionInterceptor.executeInNewTx(JtaTransactionInterceptor.java:79)
at org.jbpm.pvm.internal.tx.jta.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:61)
at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
at org.jbpm.pvm.internal.tx.jta.JtaRetryInterceptor.executeWithRetry(JtaRetryInterceptor.java:52)
at org.jbpm.pvm.internal.tx.jta.JtaRetryInterceptor.execute(JtaRetryInterceptor.java:45)
at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:46)
at org.jbpm.pvm.internal.jobexecutor.JobParcel.run(JobParcel.java:48)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
Sample timer in my process definition:
<state g="138,450,127,52" name="Validate"> <on event="timeout"> <timer name="checkValidity" duedate="3 minutes" repeat="2 minutes"/> <event-listener class="some.class.CheckValidityEvent"> <field name="idType"><string value="ID"/></field> </event-listener> </on> <transition g="-72,-22" name="valid" to="complete"/> <transition g="-72,-22" name="invalid" to="end"/> </state>
The timers tend to exist though and run just fine on the next timeout.
I'm using jbpm 4.1 on jboss 5.1. Thanks in advance.