You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by bo...@apache.org on 2007/05/23 20:38:13 UTC
svn commit: r541016 -
/incubator/ode/trunk/bpel-scheduler-quartz/src/main/java/org/apache/ode/bpel/scheduler/quartz/QuartzSchedulerImpl.java
Author: boisvert
Date: Wed May 23 11:38:12 2007
New Revision: 541016
URL: http://svn.apache.org/viewvc?view=rev&rev=541016
Log:
Rule of thumb: Don't do work in afterCompletion()
Modified:
incubator/ode/trunk/bpel-scheduler-quartz/src/main/java/org/apache/ode/bpel/scheduler/quartz/QuartzSchedulerImpl.java
Modified: incubator/ode/trunk/bpel-scheduler-quartz/src/main/java/org/apache/ode/bpel/scheduler/quartz/QuartzSchedulerImpl.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-scheduler-quartz/src/main/java/org/apache/ode/bpel/scheduler/quartz/QuartzSchedulerImpl.java?view=diff&rev=541016&r1=541015&r2=541016
==============================================================================
--- incubator/ode/trunk/bpel-scheduler-quartz/src/main/java/org/apache/ode/bpel/scheduler/quartz/QuartzSchedulerImpl.java (original)
+++ incubator/ode/trunk/bpel-scheduler-quartz/src/main/java/org/apache/ode/bpel/scheduler/quartz/QuartzSchedulerImpl.java Wed May 23 11:38:12 2007
@@ -227,8 +227,11 @@
registerSynchronizer(new Synchronizer() {
public void afterCompletion(boolean success) {
try {
+ _executorSvc.submit(new Runnable() {
+ public void run() {
+ try {
if (transacted) {
- execIsolatedTransaction(new Callable() {
+ execTransaction(new Callable() {
public Object call() throws Exception {
JobInfo ji = new JobInfo("volatileJob", detail, 0);
doExecute(ji);
@@ -239,8 +242,13 @@
JobInfo ji = new JobInfo("volatileJob", detail, 0);
doExecute(ji);
}
- } catch (Exception e) {
- throw new ContextException("Failure when starting a new volatile job.", e);
+ } catch (Throwable t) {
+ __log.error("Error while executing volatile job: "+detail, t);
+ }
+ }
+ });
+ } catch (Throwable t) {
+ __log.error("Failure when starting a new volatile job: "+detail, t);
}
}
public void beforeCompletion() { }