From c18ec83cbf5968b39fc9b0bc6c8638b833d0b7a5 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Wed, 25 Jun 2008 21:20:09 +0000 Subject: [PATCH] Added 'waitForTasksToCompleteOnShutdown' property to SimpleMessagingTaskScheduler with a default value of 'true' (INT-268). --- .../scheduling/SimpleMessagingTaskScheduler.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/scheduling/SimpleMessagingTaskScheduler.java b/org.springframework.integration/src/main/java/org/springframework/integration/scheduling/SimpleMessagingTaskScheduler.java index be6bec2e07..86273fe466 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/scheduling/SimpleMessagingTaskScheduler.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/scheduling/SimpleMessagingTaskScheduler.java @@ -40,6 +40,8 @@ public class SimpleMessagingTaskScheduler extends AbstractMessagingTaskScheduler private final ScheduledExecutorService executor; + private volatile boolean waitForTasksToCompleteOnShutdown = true; + private volatile ErrorHandler errorHandler; private final Set pendingTasks = new CopyOnWriteArraySet(); @@ -55,6 +57,10 @@ public class SimpleMessagingTaskScheduler extends AbstractMessagingTaskScheduler } + public void setWaitForTasksToCompleteOnShutdown(boolean waitForTasksToCompleteOnShutdown) { + this.waitForTasksToCompleteOnShutdown = waitForTasksToCompleteOnShutdown; + } + public void setErrorHandler(ErrorHandler errorHandler) { this.errorHandler = errorHandler; } @@ -85,7 +91,12 @@ public class SimpleMessagingTaskScheduler extends AbstractMessagingTaskScheduler public void stop() { synchronized (this.lifecycleMonitor) { if (this.running) { - this.executor.shutdownNow(); + if (this.waitForTasksToCompleteOnShutdown) { + this.executor.shutdown(); + } + else { + this.executor.shutdownNow(); + } this.running = false; } }