You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/04/25 10:22:36 UTC

[camel] branch main updated: CAMEL-15105: move the error handler instance to the extension

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

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


The following commit(s) were added to refs/heads/main by this push:
     new d31323beb54 CAMEL-15105: move the error handler instance to the extension
d31323beb54 is described below

commit d31323beb546fd8abf0bd546b3a5192d74aacae3
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Tue Apr 25 09:55:25 2023 +0200

    CAMEL-15105: move the error handler instance to the extension
---
 .../java/org/apache/camel/support/AbstractExchange.java    | 14 +++++---------
 .../org/apache/camel/support/DefaultPooledExchange.java    |  2 +-
 .../apache/camel/support/ExtendedExchangeExtension.java    |  9 +++++----
 3 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/core/camel-support/src/main/java/org/apache/camel/support/AbstractExchange.java b/core/camel-support/src/main/java/org/apache/camel/support/AbstractExchange.java
index d58b059ac36..201964174b4 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/AbstractExchange.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/AbstractExchange.java
@@ -85,7 +85,6 @@ class AbstractExchange implements Exchange {
     boolean redeliveryExhausted;
     boolean streamCacheDisabled;
     boolean failureHandled;
-    Boolean errorHandlerHandled;
     AsyncCallback defaultConsumerCallback; // optimize (do not reset)
     Map<String, SafeCopyProperty> safeCopyProperties;
     private final ExtendedExchangeExtension privateExtension;
@@ -157,10 +156,11 @@ class AbstractExchange implements Exchange {
         exchange.setRouteStop(routeStop);
         exchange.setRollbackOnly(rollbackOnly);
         exchange.setRollbackOnlyLast(rollbackOnlyLast);
-        exchange.getExchangeExtension().setNotifyEvent(notifyEvent);
-        exchange.getExchangeExtension().setRedeliveryExhausted(redeliveryExhausted);
-        exchange.getExchangeExtension().setErrorHandlerHandled(errorHandlerHandled);
-        exchange.getExchangeExtension().setStreamCacheDisabled(streamCacheDisabled);
+        final ExtendedExchangeExtension newExchangeExtension = exchange.getExchangeExtension();
+        newExchangeExtension.setNotifyEvent(notifyEvent);
+        newExchangeExtension.setRedeliveryExhausted(redeliveryExhausted);
+        newExchangeExtension.setErrorHandlerHandled(getExchangeExtension().getErrorHandlerHandled());
+        newExchangeExtension.setStreamCacheDisabled(streamCacheDisabled);
 
         // copy properties after body as body may trigger lazy init
         if (hasProperties()) {
@@ -762,10 +762,6 @@ class AbstractExchange implements Exchange {
         }
     }
 
-    boolean isErrorHandlerHandledSet() {
-        return errorHandlerHandled != null;
-    }
-
     /**
      * Configures the message after it has been set on the exchange
      */
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/DefaultPooledExchange.java b/core/camel-support/src/main/java/org/apache/camel/support/DefaultPooledExchange.java
index 41b53eb0e83..fe44c36ef90 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/DefaultPooledExchange.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/DefaultPooledExchange.java
@@ -120,7 +120,7 @@ public final class DefaultPooledExchange extends AbstractExchange implements Poo
             this.interrupted = false;
             this.interruptable = true;
             this.redeliveryExhausted = false;
-            this.errorHandlerHandled = null;
+            getExchangeExtension().setErrorHandlerHandled(null);
             this.streamCacheDisabled = false;
 
             if (onDone != null) {
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/ExtendedExchangeExtension.java b/core/camel-support/src/main/java/org/apache/camel/support/ExtendedExchangeExtension.java
index 2b1d8946748..dc853865b54 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/ExtendedExchangeExtension.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/ExtendedExchangeExtension.java
@@ -30,6 +30,7 @@ import org.apache.camel.spi.UnitOfWork;
 
 public class ExtendedExchangeExtension implements ExchangeExtension {
     private final AbstractExchange exchange;
+    private Boolean errorHandlerHandled;
 
     ExtendedExchangeExtension(AbstractExchange exchange) {
         this.exchange = exchange;
@@ -66,22 +67,22 @@ public class ExtendedExchangeExtension implements ExchangeExtension {
 
     @Override
     public boolean isErrorHandlerHandledSet() {
-        return this.exchange.isErrorHandlerHandledSet();
+        return errorHandlerHandled != null;
     }
 
     @Override
     public Boolean getErrorHandlerHandled() {
-        return this.exchange.errorHandlerHandled;
+        return this.errorHandlerHandled;
     }
 
     @Override
     public void setErrorHandlerHandled(Boolean errorHandlerHandled) {
-        this.exchange.errorHandlerHandled = errorHandlerHandled;
+        this.errorHandlerHandled = errorHandlerHandled;
     }
 
     @Override
     public boolean isErrorHandlerHandled() {
-        return this.exchange.errorHandlerHandled;
+        return this.errorHandlerHandled;
     }
 
     @Override