Updated Branches:
  refs/heads/master 939557a2f -> 6c27433e2

CAMEL-6341 fix the issue that DefaultShutdownStrategy never shutdown if the 
timeout is 0.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/6c27433e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/6c27433e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/6c27433e

Branch: refs/heads/master
Commit: 6c27433e25d706cd643c4dec5bb39099d0079ce7
Parents: 939557a
Author: Willem Jiang <ningji...@apache.org>
Authored: Thu May 9 13:57:46 2013 +0800
Committer: Willem Jiang <ningji...@apache.org>
Committed: Thu May 9 14:01:39 2013 +0800

----------------------------------------------------------------------
 .../apache/camel/impl/DefaultShutdownStrategy.java |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6c27433e/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java
index 4da2d18..a7e9cf8 100644
--- 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java
+++ 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java
@@ -220,6 +220,9 @@ public class DefaultShutdownStrategy extends ServiceSupport 
implements ShutdownS
     }
 
     public void setTimeout(long timeout) {
+        if (timeout < 0) {
+            throw new IllegalArgumentException("Timeout must not be lesser 
than 0.");
+        }
         this.timeout = timeout;
     }
 
@@ -533,9 +536,14 @@ public class DefaultShutdownStrategy extends 
ServiceSupport implements ShutdownS
                 }
                 if (size > 0) {
                     try {
-                        LOG.info("Waiting as there are still " + size + " 
inflight and pending exchanges to complete, timeout in "
+                        if (timeout > 0) {
+                            LOG.info("Waiting as there are still " + size + " 
inflight and pending exchanges to complete, timeout in "
                                  + (TimeUnit.SECONDS.convert(timeout, 
timeUnit) - (loopCount++ * loopDelaySeconds)) + " seconds.");
-                        Thread.sleep(loopDelaySeconds * 1000);
+                            Thread.sleep(loopDelaySeconds * 1000);
+                        } else {
+                            // we should not wait here 
+                            throw new InterruptedException();
+                        }
                     } catch (InterruptedException e) {
                         if (abortAfterTimeout) {
                             LOG.warn("Interrupted while waiting during 
graceful shutdown, will abort.");

Reply via email to