From c63f65f2568aaf65369c82a8a464dd1646f4ca6c Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Tue, 12 Aug 2008 00:01:20 +0000 Subject: [PATCH] Preventing copy of ID or timestamp header attributes. --- .../integration/message/MessageBuilder.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) 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)); + } + }