diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessageSendingTemplate.java b/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessageSendingTemplate.java index 4ebf412e695..8671dddc190 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessageSendingTemplate.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessageSendingTemplate.java @@ -148,7 +148,7 @@ public abstract class AbstractMessageSendingTemplate implements MessageSendin public void convertAndSend(Object payload, @Nullable Map headers, @Nullable MessagePostProcessor postProcessor) throws MessagingException { - convertAndSend(getRequiredDefaultDestination(), payload, null, postProcessor); + convertAndSend(getRequiredDefaultDestination(), payload, headers, postProcessor); } @Override diff --git a/spring-messaging/src/test/java/org/springframework/messaging/core/GenericMessagingTemplateTests.java b/spring-messaging/src/test/java/org/springframework/messaging/core/GenericMessagingTemplateTests.java index 61f4a915eac..bf65e836e80 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/core/GenericMessagingTemplateTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/core/GenericMessagingTemplateTests.java @@ -17,6 +17,7 @@ package org.springframework.messaging.core; import java.util.List; +import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; @@ -50,6 +51,7 @@ import static org.mockito.Mockito.verify; * * @author Rossen Stoyanchev * @author Gary Russell + * @author Sam Brannen */ class GenericMessagingTemplateTests { @@ -248,6 +250,20 @@ class GenericMessagingTemplateTests { assertThat(accessor.isMutable()).isFalse(); } + @Test + void convertAndSendWithDefaultDestinationAndSimpMessageHeaders() { + Map headers = Map.of("foo", "bar"); + Object payload = "Hello"; + TestMessagePostProcessor postProcessor = new TestMessagePostProcessor(); + + this.template.convertAndSend(payload, headers, postProcessor); + List> messages = this.messageChannel.getMessages(); + Message message = messages.get(0); + + assertThat(postProcessor.getMessage().getPayload()).isEqualTo(payload); + assertThat(message.getHeaders()).containsKeys("foo"); + } + private class TestDestinationResolver implements DestinationResolver {