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


Reply via email to