diff --git a/spring-integration-amqp/src/test/java/org/springframework/integration/amqp/support/DefaultAmqpHeaderMapperTests.java b/spring-integration-amqp/src/test/java/org/springframework/integration/amqp/support/DefaultAmqpHeaderMapperTests.java index 334cc5c741..8e15f680d7 100644 --- a/spring-integration-amqp/src/test/java/org/springframework/integration/amqp/support/DefaultAmqpHeaderMapperTests.java +++ b/spring-integration-amqp/src/test/java/org/springframework/integration/amqp/support/DefaultAmqpHeaderMapperTests.java @@ -16,13 +16,13 @@ package org.springframework.integration.amqp.support; -import static org.junit.Assert.assertEquals; - import java.util.Date; import java.util.HashMap; import java.util.Map; +import java.util.Set; import org.junit.Test; + import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageDeliveryMode; import org.springframework.amqp.core.MessageProperties; @@ -30,6 +30,9 @@ import org.springframework.amqp.support.converter.JsonMessageConverter; import org.springframework.integration.MessageHeaders; import org.springframework.integration.amqp.AmqpHeaders; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + /** * @author Mark Fisher * @since 2.1 @@ -62,6 +65,12 @@ public class DefaultAmqpHeaderMapperTests { MessageHeaders integrationHeaders = new MessageHeaders(headerMap); MessageProperties amqpProperties = new MessageProperties(); headerMapper.fromHeadersToRequest(integrationHeaders, amqpProperties); + Set headerKeys = amqpProperties.getHeaders().keySet(); + for (String headerKey : headerKeys) { + if (headerKey.startsWith(AmqpHeaders.PREFIX)){ + fail(); + } + } assertEquals("test.appId", amqpProperties.getAppId()); assertEquals("test.clusterId", amqpProperties.getClusterId()); assertEquals("test.contentEncoding", amqpProperties.getContentEncoding()); diff --git a/spring-integration-core/src/main/java/org/springframework/integration/mapping/AbstractHeaderMapper.java b/spring-integration-core/src/main/java/org/springframework/integration/mapping/AbstractHeaderMapper.java index 3203da4879..6fc669f851 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/mapping/AbstractHeaderMapper.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/mapping/AbstractHeaderMapper.java @@ -159,8 +159,10 @@ public abstract class AbstractHeaderMapper implements RequestReplyHeaderMappe Object value = headers.get(headerName); if (value != null) { try { - String key = this.addPrefixIfNecessary(this.userDefinedHeaderPrefix, headerName); - this.populateUserDefinedHeader(key, value, target); + if (!headerName.startsWith(this.standardHeaderPrefix)){ + String key = this.addPrefixIfNecessary(this.userDefinedHeaderPrefix, headerName); + this.populateUserDefinedHeader(key, value, target); + } } catch (Exception e) { if (logger.isWarnEnabled()) {