This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 78005b3f7db87a7f1e3405ea1e72db95e5eefcd9
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue Jan 28 12:12:14 2020 +0100

    CAMEL-14354: camel-core optimize
---
 .../src/main/java/org/apache/camel/ExtendedExchange.java   |  2 +-
 .../java/org/apache/camel/processor/PipelineHelper.java    | 14 ++++++--------
 .../aggregate/ShareUnitOfWorkAggregationStrategy.java      |  6 ++----
 .../processor/aggregate/UseLatestAggregationStrategy.java  |  7 +++----
 .../java/org/apache/camel/support/DefaultExchange.java     |  5 +++++
 .../main/java/org/apache/camel/support/ExchangeHelper.java | 12 ------------
 6 files changed, 17 insertions(+), 29 deletions(-)

diff --git 
a/core/camel-api/src/main/java/org/apache/camel/ExtendedExchange.java 
b/core/camel-api/src/main/java/org/apache/camel/ExtendedExchange.java
index 02816c2..61184f4 100644
--- a/core/camel-api/src/main/java/org/apache/camel/ExtendedExchange.java
+++ b/core/camel-api/src/main/java/org/apache/camel/ExtendedExchange.java
@@ -128,7 +128,7 @@ public interface ExtendedExchange extends Exchange {
      */
     void setRedeliveryExhausted(boolean redeliveryExhausted);
 
-    // TODO: javadoc
+    boolean isErrorHandlerHandled();
 
     Boolean getErrorHandlerHandled();
 
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/processor/PipelineHelper.java 
b/core/camel-base/src/main/java/org/apache/camel/processor/PipelineHelper.java
index 9b5dc5f..b55fe85 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/processor/PipelineHelper.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/processor/PipelineHelper.java
@@ -17,10 +17,9 @@
 package org.apache.camel.processor;
 
 import org.apache.camel.Exchange;
+import org.apache.camel.ExtendedExchange;
 import org.slf4j.Logger;
 
-import static 
org.apache.camel.support.ExchangeHelper.hasExceptionBeenHandledByErrorHandler;
-
 /**
  * Helper for processing {@link org.apache.camel.Exchange} in a
  * <a href="http://camel.apache.org/pipes-and-filters.html";>pipeline</a>.
@@ -39,10 +38,9 @@ public final class PipelineHelper {
      * @return <tt>true</tt> to continue processing, <tt>false</tt> to break 
out, for example if an exception occurred.
      */
     public static boolean continueProcessing(Exchange exchange, String 
message, Logger log) {
-        // check for error if so we should break out
-        boolean exceptionHandled = 
hasExceptionBeenHandledByErrorHandler(exchange);
-        if (exceptionHandled || exchange.isFailed() || 
exchange.isRollbackOnly() || exchange.isRollbackOnlyLast()) {
-            // The Exchange.ERRORHANDLED_HANDLED property is only set if 
satisfactory handling was done
+        ExtendedExchange ee = (ExtendedExchange) exchange;
+        if (ee.isFailed() || ee.isRollbackOnly() || ee.isRollbackOnlyLast() || 
ee.isErrorHandlerHandled()) {
+            // The errorErrorHandler is only set if satisfactory handling was 
done
             // by the error handler. It's still an exception, the exchange 
still failed.
             if (log.isDebugEnabled()) {
                 StringBuilder sb = new StringBuilder();
@@ -53,7 +51,7 @@ public final class PipelineHelper {
                 if (exchange.getException() != null) {
                     sb.append(" Exception: ").append(exchange.getException());
                 }
-                if (exceptionHandled) {
+                if (ee.isErrorHandlerHandled()) {
                     sb.append(" Handled by the error handler.");
                 }
                 log.debug(sb.toString());
@@ -63,7 +61,7 @@ public final class PipelineHelper {
         }
 
         // check for stop
-        if (exchange.isRouteStop()) {
+        if (ee.isRouteStop()) {
             if (log.isDebugEnabled()) {
                 log.debug("ExchangeId: {} is marked to stop routing: {}", 
exchange.getExchangeId(), exchange);
             }
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/ShareUnitOfWorkAggregationStrategy.java
 
b/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/ShareUnitOfWorkAggregationStrategy.java
index 60246b2..a965aec 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/ShareUnitOfWorkAggregationStrategy.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/ShareUnitOfWorkAggregationStrategy.java
@@ -24,8 +24,6 @@ import org.apache.camel.ExtendedExchange;
 import org.apache.camel.support.service.ServiceHelper;
 import org.apache.camel.support.service.ServiceSupport;
 
-import static 
org.apache.camel.support.ExchangeHelper.hasExceptionBeenHandledByErrorHandler;
-
 /**
  * An {@link AggregationStrategy} which are used when the option 
<tt>shareUnitOfWork</tt> is enabled
  * on EIPs such as multicast, splitter or recipientList.
@@ -106,9 +104,9 @@ public final class ShareUnitOfWorkAggregationStrategy 
extends ServiceSupport imp
     }
 
     protected void propagateFailure(Exchange answer, Exchange newExchange) {
+        ExtendedExchange nee = (ExtendedExchange) newExchange;
         // if new exchange failed then propagate all the error related 
properties to the answer
-        boolean exceptionHandled = 
hasExceptionBeenHandledByErrorHandler(newExchange);
-        if (exceptionHandled || newExchange.isFailed() || 
newExchange.isRollbackOnly() || newExchange.isRollbackOnlyLast()) {
+        if (nee.isFailed() || nee.isRollbackOnly() || nee.isRollbackOnlyLast() 
|| nee.isErrorHandlerHandled()) {
             if (newExchange.getException() != null) {
                 answer.setException(newExchange.getException());
             }
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/UseLatestAggregationStrategy.java
 
b/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/UseLatestAggregationStrategy.java
index 07a911b..35fe5e8 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/UseLatestAggregationStrategy.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/processor/aggregate/UseLatestAggregationStrategy.java
@@ -18,8 +18,7 @@ package org.apache.camel.processor.aggregate;
 
 import org.apache.camel.AggregationStrategy;
 import org.apache.camel.Exchange;
-
-import static 
org.apache.camel.support.ExchangeHelper.hasExceptionBeenHandledByErrorHandler;
+import org.apache.camel.ExtendedExchange;
 
 /**
  * An {@link AggregationStrategy} which just uses the latest exchange which is 
useful
@@ -71,8 +70,8 @@ public class UseLatestAggregationStrategy implements 
AggregationStrategy {
         }
 
         // propagate exception from old exchange if there isn't already an 
exception
-        boolean exceptionHandled = 
hasExceptionBeenHandledByErrorHandler(oldExchange);
-        if (exceptionHandled || oldExchange.isFailed() || 
oldExchange.isRollbackOnly() || oldExchange.isRollbackOnlyLast()) {
+        ExtendedExchange oee = (ExtendedExchange) oldExchange;
+        if (oee.isFailed() || oee.isRollbackOnly() || oee.isRollbackOnlyLast() 
|| oee.isErrorHandlerHandled()) {
             // propagate failure by using old exchange as the answer
             return oldExchange;
         }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/DefaultExchange.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/DefaultExchange.java
index ad60123..8383ad2 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/DefaultExchange.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/DefaultExchange.java
@@ -662,6 +662,11 @@ public final class DefaultExchange implements 
ExtendedExchange {
     }
 
     @Override
+    public boolean isErrorHandlerHandled() {
+        return errorHandlerHandled != null && errorHandlerHandled;
+    }
+
+    @Override
     public void setErrorHandlerHandled(Boolean errorHandlerHandled) {
         this.errorHandlerHandled = errorHandlerHandled;
     }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/ExchangeHelper.java 
b/core/camel-support/src/main/java/org/apache/camel/support/ExchangeHelper.java
index 384271c..e719510 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/ExchangeHelper.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/ExchangeHelper.java
@@ -662,18 +662,6 @@ public final class ExchangeHelper {
     }
 
     /**
-     * Tests whether the exchange has already been handled by the error handler
-     *
-     * @param exchange the exchange
-     * @return <tt>true</tt> if handled already by error handler, 
<tt>false</tt> otherwise
-     */
-    public static boolean hasExceptionBeenHandledByErrorHandler(Exchange 
exchange) {
-        ExtendedExchange ee = (ExtendedExchange) exchange;
-        Boolean handled = ee.getErrorHandlerHandled();
-        return handled != null && handled;
-    }
-
-    /**
      * Extracts the body from the given future, that represents a handle to an 
asynchronous exchange.
      * <p/>
      * Will wait until the future task is complete.

Reply via email to