From fab0f5478fc5c587be54463b370b45a8c14927e6 Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Thu, 15 Jun 2017 10:33:21 -0400 Subject: [PATCH] INT-4284: Remove info about readOnly headers JIRA: https://jira.spring.io/browse/INT-4284 **Cherry-pick to 4.3.x** --- .../integration/support/MessageBuilder.java | 8 +++----- src/reference/asciidoc/message.adoc | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/spring-integration-core/src/main/java/org/springframework/integration/support/MessageBuilder.java b/spring-integration-core/src/main/java/org/springframework/integration/support/MessageBuilder.java index 5b4b3a3596..98d6c13bd2 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/support/MessageBuilder.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/support/MessageBuilder.java @@ -188,11 +188,9 @@ public final class MessageBuilder extends AbstractIntegrationMessageBuilder copyHeadersIfAbsent(Map headersToCopy) { if (headersToCopy != null) { for (Map.Entry entry : headersToCopy.entrySet()) { - if (!this.headerAccessor.isReadOnly(entry.getKey())) { - this.headerAccessor.setHeaderIfAbsent(entry.getKey(), entry.getValue()); - } - else if (logger.isInfoEnabled()) { - logger.info("The header [" + entry + "] is ignored for population because it is is readOnly."); + String headerName = entry.getKey(); + if (!this.headerAccessor.isReadOnly(headerName)) { + this.headerAccessor.setHeaderIfAbsent(headerName, entry.getValue()); } } } diff --git a/src/reference/asciidoc/message.adoc b/src/reference/asciidoc/message.adoc index 3182253c9f..eded7ca94c 100644 --- a/src/reference/asciidoc/message.adoc +++ b/src/reference/asciidoc/message.adoc @@ -373,7 +373,7 @@ In addition to the default strategy, two additional `IdGenerators` are provided; [[read-only-headers]] ===== Read-only Headers -The `MessageHeaders.ID` and `MessageHeaders.TIMESTAMP` are read-only headers and the cannot be overridden. +The `MessageHeaders.ID` and `MessageHeaders.TIMESTAMP` are read-only headers and they cannot be overridden. Since _version 4.3.2_, the `MessageBuilder` provides the `readOnlyHeaders(String... readOnlyHeaders)` API to customize a list of headers which should not be copied from an upstream `Message`. Just the `MessageHeaders.ID` and `MessageHeaders.TIMESTAMP` are read only by default.