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
*/