diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageBuilder.java b/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageBuilder.java index 1e6b40f688..e419d25f83 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageBuilder.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/message/MessageBuilder.java @@ -84,10 +84,9 @@ public final class MessageBuilder { public MessageBuilder copyHeaders(Map headersToCopy) { Set keys = headersToCopy.keySet(); for (String key : keys) { - if (key.equals(MessageHeaders.TIMESTAMP)) { - continue; + if (this.isEligibleForCopying(key)) { + this.setHeader(key, headersToCopy.get(key)); } - this.setHeader(key, headersToCopy.get(key)); } return this; } @@ -95,10 +94,9 @@ public final class MessageBuilder { public MessageBuilder copyHeadersIfAbsent(Map headersToCopy) { Set keys = headersToCopy.keySet(); for (String key : keys) { - if (key.equals(MessageHeaders.TIMESTAMP)) { - continue; + if (this.isEligibleForCopying(key)) { + this.setHeaderIfAbsent(key, headersToCopy.get(key)); } - this.setHeaderIfAbsent(key, headersToCopy.get(key)); } return this; } @@ -143,4 +141,8 @@ public final class MessageBuilder { return new GenericMessage(this.payload, this.headers); } + private boolean isEligibleForCopying(String key) { + return !(key.equals(MessageHeaders.ID) || key.equals(MessageHeaders.TIMESTAMP)); + } + }