2 Replies Latest reply on Sep 15, 2010 3:09 PM by abdulrahman

    ObjectNotFoundException in JBPM process

    abdulrahman

      Hi Guys,

       

      At times when JBPM tries to trigger a timed state it throws a hibernate exception.

       

      The exception is logged in the table JBPM4_JOB as shown below

       

      org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [org.jbpm.pvm.internal.model.ExecutionImpl#306479]

                      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_5.toString(ExecutionImpl_$$_javassist_5.java)

                      at java.lang.String.valueOf(String.java:2827)

                      at java.lang.StringBuilder.append(StringBuilder.java:115)

                      at org.jbpm.pvm.internal.job.TimerImpl.execute(TimerImpl.java:119)

                      at org.jbpm.pvm.internal.job.TimerImpl.execute(TimerImpl.java:1)

                      at org.jbpm.pvm.internal.cmd.ExecuteJobCmd.execute(ExecuteJobCmd.java:76)

                      at org.jbpm.pvm.internal.cmd.ExecuteJobCmd.execute(ExecuteJobCmd.java:1)

                      at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)

                      at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:54)

                      at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)

                      at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)

                      at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)

                      at org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)

                      at org.jbpm.pvm.internal.jobexecutor.JobParcel.run(JobParcel.java:48)

                      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

                      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

                      at java.util.concurrent.FutureTask.run(FutureTask.java:138)

                      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)

       

      The state of the job is changed to ‘error’.

       

       

      Upon checking the JBPM4_EXECUTION there is no entry in the table releated to the job which the jbpm tries to execute.

       

      Also this scenario is hard to recreate as we are not sure why the row is not inserted or getting deleted in the JBPM4_EXECUTION table.

       

      Any help will be greatly appreciated.

       

      I am using Weblogic 10.3 with JSF,SEAM and JBPM 4.2 and Oracle as the db

       

       

      Thanks in advance

      Abdul