[jboss-user] [JBoss jBPM] - Problem with Timer execution. process classloader can't find
rayun
do-not-reply at jboss.com
Fri Mar 14 08:05:12 EDT 2008
Hi,
I have a problem with the execution of an action for my timers.
I am using JBPM 3.2.2 with Tomcat and try to execute a process with a timer on 2 tasks in a fork.
The part of the process which give me troubles is the following :
| <fork name="fork1">
| <transition name="To client" to="Client validation"></transition>
| <transition name="To broker" to="Broker validation"></transition>
| </fork>
| <task-node name="Client validation">
| <task name="client complete and validate informations" swimlane="client">
| <timer name="reminder1" duedate="30 seconds">
| <action name="Send a time-out notice for client" class="common.processhandlers.DueDateHandler"></action>
| </timer>
| </task>
| <transition name="Client informations completed" to="join1"></transition>
| </task-node>
| <task-node name="Broker validation">
| <task name="broker complete and validate informations" swimlane="broker">
| <timer name="reminder2" duedate="30 seconds">
| <action name="Send a time-out notice for broker" class="common.processhandlers.DueDateHandler"></action>
| </timer>
| </task>
| <transition name="Broker informations completed" to="join1"></transition>
| </task-node>
| <join name="join1">
| <transition name="All informations available" to="end"></transition>
| </join>
|
The class DueDateHandler i try to execute in both timer is in the sources of the web application executing the process and do nothing but displaying a message.
When i try to execute this process and the duedate for the timers expire, i get the following Error :
| ERROR - def.AbstractFlushingEventListener - 301 - Could not synchronize database state with session
| org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.job.Timer#21383]
| at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1765)
| at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2407)
| at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2307)
| at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2607)
| at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
| at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
| at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
| at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
| at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
| at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
| at org.jbpm.persistence.db.DbPersistenceService.commit(DbPersistenceService.java:256)
| at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:214)
| at org.jbpm.svc.Services.close(Services.java:225)
| at org.jbpm.JbpmContext.close(JbpmContext.java:139)
| at org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:144)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:58)
| INFO - db.DbPersistenceService - 258 - optimistic locking failed
| INFO - svc.Services - 229 - problem closing service 'persistence': optimistic locking failed
| WARN - StatefulPersistenceContext.ProxyWarnLog - 615 - Narrowing proxy to class org.jbpm.graph.node.TaskNode - this operation breaks ==
| WARN - StatefulPersistenceContext.ProxyWarnLog - 615 - Narrowing proxy to class org.jbpm.graph.node.TaskNode - this operation breaks ==
| ERROR - instantiation.Delegation - 142 - couldn't load delegation class 'common.processhandlers.DueDateHandler'
| java.lang.ClassNotFoundException: class 'common.processhandlers.DueDateHandler' could not be found by the process classloader
| at org.jbpm.instantiation.ProcessClassLoader.findClass(ProcessClassLoader.java:118)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
| at org.jbpm.instantiation.Delegation.instantiate(Delegation.java:140)
| at org.jbpm.instantiation.Delegation.getInstance(Delegation.java:125)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.instantiation.Delegation$$EnhancerByCGLIB$$87bad03b.getInstance(<generated>)
| at org.jbpm.graph.def.Action.execute(Action.java:121)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.graph.def.Action$$EnhancerByCGLIB$$322143d.execute(<generated>)
| at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:264)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.taskmgmt.def.Task$$EnhancerByCGLIB$$b38133b8.executeAction(<generated>)
| at org.jbpm.job.Timer.execute(Timer.java:56)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.job.Job$$EnhancerByCGLIB$$7970239a.execute(<generated>)
| at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:164)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
| ERROR - instantiation.Delegation - 165 - couldn't instantiate delegation class 'common.processhandlers.DueDateHandler'
| java.lang.NullPointerException
| at org.jbpm.instantiation.FieldInstantiator.newInstance(FieldInstantiator.java:105)
| at org.jbpm.instantiation.FieldInstantiator.instantiate(FieldInstantiator.java:48)
| at org.jbpm.instantiation.Delegation.instantiate(Delegation.java:163)
| at org.jbpm.instantiation.Delegation.getInstance(Delegation.java:125)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.instantiation.Delegation$$EnhancerByCGLIB$$87bad03b.getInstance(<generated>)
| at org.jbpm.graph.def.Action.execute(Action.java:121)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.graph.def.Action$$EnhancerByCGLIB$$322143d.execute(<generated>)
| at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:264)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.taskmgmt.def.Task$$EnhancerByCGLIB$$b38133b8.executeAction(<generated>)
| at org.jbpm.job.Timer.execute(Timer.java:56)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.job.Job$$EnhancerByCGLIB$$7970239a.execute(<generated>)
| at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:164)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
| ERROR - def.GraphElement - 275 - action threw exception: null
| java.lang.NullPointerException
| at org.jbpm.graph.def.Action.execute(Action.java:122)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.graph.def.Action$$EnhancerByCGLIB$$322143d.execute(<generated>)
| at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:264)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.taskmgmt.def.Task$$EnhancerByCGLIB$$b38133b8.executeAction(<generated>)
| at org.jbpm.job.Timer.execute(Timer.java:56)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.job.Job$$EnhancerByCGLIB$$7970239a.execute(<generated>)
| at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:164)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
| WARN - job.Timer - 62 - timer action threw exception
| org.jbpm.graph.def.DelegationException
| at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:387)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.graph.def.ProcessDefinition$$EnhancerByCGLIB$$c4ed9d31.raiseException(<generated>)
| at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:378)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.graph.node.TaskNode$$EnhancerByCGLIB$$45bbca9f.raiseException(<generated>)
| at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:378)
| at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:281)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.taskmgmt.def.Task$$EnhancerByCGLIB$$b38133b8.executeAction(<generated>)
| at org.jbpm.job.Timer.execute(Timer.java:56)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.job.Job$$EnhancerByCGLIB$$7970239a.execute(<generated>)
| at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:164)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
| Caused by: java.lang.NullPointerException
| at org.jbpm.graph.def.Action.execute(Action.java:122)
| 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:597)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.graph.def.Action$$EnhancerByCGLIB$$322143d.execute(<generated>)
| at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:264)
| ... 15 more
|
The class loader won't find the action to execute for the timers while the class is present in the application.
I tried many things but couldn't find a solution to this problem.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4136618#4136618
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4136618
More information about the jboss-user
mailing list