A bit better error message in throttler if it was interrupted during force shutdown of Camel
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d022baa6 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d022baa6 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d022baa6 Branch: refs/heads/master Commit: d022baa6726045fcdd467e7939d3916d7c0cbe03 Parents: b444042 Author: Claus Ibsen <davscl...@apache.org> Authored: Sat Feb 13 09:32:04 2016 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sat Feb 13 09:32:04 2016 +0100 ---------------------------------------------------------------------- .../main/java/org/apache/camel/processor/Throttler.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/d022baa6/camel-core/src/main/java/org/apache/camel/processor/Throttler.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/processor/Throttler.java b/camel-core/src/main/java/org/apache/camel/processor/Throttler.java index dda02ec..5fe3b46 100644 --- a/camel-core/src/main/java/org/apache/camel/processor/Throttler.java +++ b/camel-core/src/main/java/org/apache/camel/processor/Throttler.java @@ -173,6 +173,18 @@ public class Throttler extends DelegateAsyncProcessor implements Traceable, IdAw callback.done(doneSync); return doneSync; + } catch (final InterruptedException e) { + // determine if we can still run, or the camel context is forcing a shutdown + boolean forceShutdown = exchange.getContext().getShutdownStrategy().forceShutdown(this); + if (forceShutdown) { + String msg = "Run not allowed as ShutdownStrategy is forcing shutting down, will reject executing exchange: " + exchange; + log.debug(msg); + exchange.setException(new RejectedExecutionException(msg, e)); + } else { + exchange.setException(e); + } + callback.done(doneSync); + return doneSync; } catch (final Throwable t) { exchange.setException(t); callback.done(doneSync);