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 2009/10/01 03:08:11 UTC
svn commit: r820504 -
/ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
Author: boisvert
Date: Thu Oct 1 01:08:11 2009
New Revision: 820504
URL: http://svn.apache.org/viewvc?rev=820504&view=rev
Log:
SchedulerTasks should be dispatched via executor to avoid holding (and deadlocking with) SchedulerThread
Modified:
ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
Modified: ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java?rev=820504&r1=820503&r2=820504&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java (original)
+++ ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java Thu Oct 1 01:08:11 2009
@@ -577,7 +577,7 @@
}
}
- public void runTask(Task task) {
+ public void runTask(final Task task) {
if (task instanceof Job) {
Job job = (Job)task;
if( job.detail.get("runnable") != null ) {
@@ -585,8 +585,18 @@
} else {
runJob(job);
}
- } else if (task instanceof SchedulerTask)
- ((SchedulerTask) task).run();
+ } else if (task instanceof SchedulerTask) {
+ _exec.submit(new Callable<Void>() {
+ public Void call() throws Exception {
+ try {
+ ((SchedulerTask) task).run();
+ } catch (Exception ex) {
+ __log.error("Error during SchedulerTask execution", ex);
+ }
+ return null;
+ }
+ });
+ }
}
public void updateHeartBeat(String nodeId) {