Repository: camel
Updated Branches:
  refs/heads/master e3a1bdb6a -> 2dcad657c


CAMEL-11448: Optimise - Detect interrupted exception in a quicker way which 
optimises the routing engine to be faster.


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

Branch: refs/heads/master
Commit: 1e1bae957705f8a6d9dabe08489cd8b70e8c4b1c
Parents: e3a1bdb
Author: Claus Ibsen <davscl...@apache.org>
Authored: Sat Jun 24 22:53:40 2017 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Sat Jun 24 22:55:44 2017 +0200

----------------------------------------------------------------------
 camel-core/src/main/java/org/apache/camel/Exchange.java          | 1 +
 .../src/main/java/org/apache/camel/impl/DefaultExchange.java     | 4 ++++
 .../src/main/java/org/apache/camel/util/ExchangeHelper.java      | 2 +-
 3 files changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/1e1bae95/camel-core/src/main/java/org/apache/camel/Exchange.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/Exchange.java 
b/camel-core/src/main/java/org/apache/camel/Exchange.java
index 56e0780..b4e1992 100644
--- a/camel-core/src/main/java/org/apache/camel/Exchange.java
+++ b/camel-core/src/main/java/org/apache/camel/Exchange.java
@@ -160,6 +160,7 @@ public interface Exchange {
 
     String INTERCEPTED_ENDPOINT = "CamelInterceptedEndpoint";
     String INTERCEPT_SEND_TO_ENDPOINT_WHEN_MATCHED = 
"CamelInterceptSendToEndpointWhenMatched";
+    String INTERRUPTED = "CamelInterrupted";
 
     String LANGUAGE_SCRIPT          = "CamelLanguageScript";
     String LOG_DEBUG_BODY_MAX_CHARS = "CamelLogDebugBodyMaxChars";

http://git-wip-us.apache.org/repos/asf/camel/blob/1e1bae95/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
index 2ae2f5b..bb9d982 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
@@ -367,6 +367,10 @@ public final class DefaultExchange implements Exchange {
             // wrap throwable into an exception
             this.exception = ObjectHelper.wrapCamelExecutionException(this, t);
         }
+        if (t instanceof InterruptedException) {
+            // mark the exchange as interrupted due to the interrupt exception
+            setProperty(Exchange.INTERRUPTED, Boolean.TRUE);
+        }
     }
 
     public ExchangePattern getPattern() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1e1bae95/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java 
b/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java
index 11b0dac..13d08ad 100644
--- a/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java
@@ -676,7 +676,7 @@ public final class ExchangeHelper {
      * @return <tt>true</tt> if interrupted, <tt>false</tt> otherwise
      */
     public static boolean isInterrupted(Exchange exchange) {
-        return exchange.getException(InterruptedException.class) != null;
+        return exchange.getProperty(Exchange.INTERRUPTED, false, 
boolean.class);
     }
 
     /**

Reply via email to