You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/04/06 10:05:29 UTC

[camel] 02/04: CAMEL-16457: camel-core - Optimize ExchangeHelper.copyResults - No need to copy message id not in use

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 633c7ab53113a75ce89994f5b8e29bfbc9824497
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Apr 6 11:46:17 2021 +0200

    CAMEL-16457: camel-core - Optimize ExchangeHelper.copyResults - No need to copy message id not in use
---
 core/camel-api/src/main/java/org/apache/camel/Message.java     |  5 +++++
 .../src/main/java/org/apache/camel/support/MessageSupport.java | 10 ++++++++--
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/core/camel-api/src/main/java/org/apache/camel/Message.java b/core/camel-api/src/main/java/org/apache/camel/Message.java
index df8dcbc..a2db06f 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Message.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Message.java
@@ -60,6 +60,11 @@ public interface Message {
     void setMessageId(String messageId);
 
     /**
+     * Whether the message has any message ID assigned.
+     */
+    boolean hasMessageId();
+
+    /**
      * Returns the exchange this message is related to
      *
      * @return the exchange
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/MessageSupport.java b/core/camel-support/src/main/java/org/apache/camel/support/MessageSupport.java
index 48fcd71..f8f3e8b 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/MessageSupport.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/MessageSupport.java
@@ -218,9 +218,10 @@ public abstract class MessageSupport implements Message, CamelContextAware, Data
             setExchange(that.getExchange());
         }
 
+        if (that.hasMessageId()) {
+            setMessageId(that.getMessageId());
+        }
         // should likely not set DataType as the new body may be a different type than the original body
-
-        setMessageId(that.getMessageId());
         setBody(newBody);
 
         // the headers may be the same instance if the end user has made some mistake
@@ -288,6 +289,11 @@ public abstract class MessageSupport implements Message, CamelContextAware, Data
         this.messageId = messageId;
     }
 
+    @Override
+    public boolean hasMessageId() {
+        return messageId != null;
+    }
+
     /**
      * Allow implementations to auto-create a messageId
      */