[
https://jira.jboss.org/jira/browse/JBPM-2691?page=com.atlassian.jira.plug...
]
Bernd Ruecker commented on JBPM-2691:
-------------------------------------
Hey Alex, the current proposed path seems to make some trouble when executing a Timer
which throws an exception:
12:40:09,061 WARN [Timer] timer action threw exception
java.lang.Exception: Technical Exception
at ...jbpm.actions.test.ThrowException.execute(ThrowException.java:20)
at org.jbpm.graph.def.Action.execute(Action.java:137)
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.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
at org.jbpm.graph.def.Action_$$_javassist_34.execute(Action_$$_javassist_34.java)
at org.jbpm.job.Timer.execute(Timer.java:60)
at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:180)
at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
12:40:09,070 ERROR [JobExecutorThread] exception in JbpmJobExector:127.0.1.1:1, waiting
80000 ms
org.jbpm.persistence.JbpmPersistenceException: could not reattach Timer(timer,2009-12-18
12:36:52,711,Token(/))
at org.jbpm.db.JobSession.reattachJob(JobSession.java:146)
at org.jbpm.job.executor.JobExecutorThread.saveJobException(JobExecutorThread.java:222)
at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:67)
Caused by: org.hibernate.NonUniqueObjectException: a different object with the same
identifier value was already associated with the session:
[org.jbpm.graph.exe.Token#18360]
at
org.hibernate.engine.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:590)
at
org.hibernate.event.def.AbstractReassociateEventListener.reassociate(AbstractReassociateEventListener.java:53)
at
org.hibernate.event.def.DefaultLockEventListener.onLock(DefaultLockEventListener.java:59)
at org.hibernate.impl.SessionImpl.fireLock(SessionImpl.java:584)
at org.hibernate.impl.SessionImpl.lock(SessionImpl.java:572)
at org.hibernate.engine.CascadingAction$2.cascade(CascadingAction.java:145)
at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
at
org.hibernate.event.def.DefaultLockEventListener.cascadeOnLock(DefaultLockEventListener.java:71)
at
org.hibernate.event.def.DefaultLockEventListener.onLock(DefaultLockEventListener.java:61)
at org.hibernate.impl.SessionImpl.fireLock(SessionImpl.java:584)
at org.hibernate.impl.SessionImpl.lock(SessionImpl.java:576)
at org.jbpm.db.JobSession.reattachJob(JobSession.java:143)
... 2 more
Save exceptions thrown while executing a job in a separate
transaction
----------------------------------------------------------------------
Key: JBPM-2691
URL:
https://jira.jboss.org/jira/browse/JBPM-2691
Project: jBPM
Issue Type: Bug
Affects Versions: jBPM 3.2.8
Reporter: Alejandro Guizar
Assignee: Alejandro Guizar
Fix For: jBPM 3.2.9
Attachments: JobExecutorThread.diff
Original Estimate: 0 minutes
Remaining Estimate: 0 minutes
Currently the stack trace printout is saved in the same transaction provided the
exception is not related to persistence. This scheme has two drawbacks:
1. Exceptions not related to persistence may still leave the job and the process instance
as a whole in an inconsistent state.
2. Persistence exceptions are never saved.
Hence saving the stack trace in a separate transaction would be preferable.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira