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() { }