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/26 17:58:28 UTC

[camel] 10/12: CAMEL-15105: move the interrupted flag 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

commit 760c15b059494712a07c96940c5bb4e5b380e271
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Wed Apr 26 18:46:05 2023 +0200

    CAMEL-15105: move the interrupted flag to the extension
---
 .../main/java/org/apache/camel/support/AbstractExchange.java  |  9 +--------
 .../java/org/apache/camel/support/DefaultPooledExchange.java  |  2 +-
 .../org/apache/camel/support/ExtendedExchangeExtension.java   | 11 +++++------
 3 files changed, 7 insertions(+), 15 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 28e267bbf82..be7d6bb6d97 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
@@ -73,7 +73,6 @@ class AbstractExchange implements Exchange {
     boolean routeStop;
     boolean rollbackOnly;
     boolean rollbackOnlyLast;
-    boolean interrupted;
     AsyncCallback defaultConsumerCallback; // optimize (do not reset)
     Map<String, SafeCopyProperty> safeCopyProperties;
     private final ExtendedExchangeExtension privateExtension;
@@ -583,7 +582,7 @@ class AbstractExchange implements Exchange {
         }
         if (t instanceof InterruptedException) {
             // mark the exchange as interrupted due to the interrupt exception
-            setInterrupted(true);
+            privateExtension.setInterrupted(true);
         }
     }
 
@@ -745,12 +744,6 @@ class AbstractExchange implements Exchange {
         return answer;
     }
 
-    void setInterrupted(boolean interrupted) {
-        if (privateExtension.isInterruptable()) {
-            this.interrupted = interrupted;
-        }
-    }
-
     /**
      * 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 74e4a16ac52..5b0dbc2795f 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
@@ -117,7 +117,7 @@ public final class DefaultPooledExchange extends AbstractExchange implements Poo
             this.rollbackOnly = false;
             this.rollbackOnlyLast = false;
             getExchangeExtension().setNotifyEvent(false);
-            this.interrupted = false;
+            getExchangeExtension().setInterrupted(false);
             getExchangeExtension().setInterruptable(true);
             getExchangeExtension().setRedeliveryExhausted(false);
             getExchangeExtension().setErrorHandlerHandled(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 34836f3de90..e72395c2989 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
@@ -42,6 +42,7 @@ public class ExtendedExchangeExtension implements ExchangeExtension {
     private boolean transacted;
     private boolean notifyEvent;
     private boolean interruptable = true;
+    private boolean interrupted;
 
     ExtendedExchangeExtension(AbstractExchange exchange) {
         this.exchange = exchange;
@@ -204,18 +205,16 @@ public class ExtendedExchangeExtension implements ExchangeExtension {
         this.interruptable = interruptable;
     }
 
-    public boolean isInterruptable() {
-        return interruptable;
-    }
-
     @Override
     public boolean isInterrupted() {
-        return this.exchange.interrupted;
+        return this.interrupted;
     }
 
     @Override
     public void setInterrupted(boolean interrupted) {
-        this.exchange.setInterrupted(interrupted);
+        if (interruptable) {
+            this.interrupted = interrupted;
+        }
     }
 
     @Override