Skip to content

Commit a6b06a8

Browse files
committed
Merge branch '6.2.x'
2 parents 5e9f90f + f207c0e commit a6b06a8

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

spring-messaging/src/main/java/org/springframework/messaging/support/MessageHeaderAccessor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2023 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -331,7 +331,7 @@ public void setHeader(String name, @Nullable Object value) {
331331
protected void verifyType(@Nullable String headerName, @Nullable Object headerValue) {
332332
if (headerName != null && headerValue != null) {
333333
if (MessageHeaders.ERROR_CHANNEL.equals(headerName) ||
334-
MessageHeaders.REPLY_CHANNEL.endsWith(headerName)) {
334+
MessageHeaders.REPLY_CHANNEL.equals(headerName)) {
335335
if (!(headerValue instanceof MessageChannel || headerValue instanceof String)) {
336336
throw new IllegalArgumentException(
337337
"'" + headerName + "' header value must be a MessageChannel or String");

spring-messaging/src/test/java/org/springframework/messaging/support/MessageBuilderTests.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2024 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -34,6 +34,7 @@
3434
/**
3535
* @author Mark Fisher
3636
* @author Rossen Stoyanchev
37+
* @author Mengqi Xu
3738
*/
3839
class MessageBuilderTests {
3940

@@ -238,4 +239,22 @@ void buildMultipleMessages() {
238239
assertThat(message3.getHeaders().get("foo")).isEqualTo("bar3");
239240
}
240241

242+
@Test // gh-34949
243+
void buildMessageWithReplyChannelHeader() {
244+
MessageHeaderAccessor headerAccessor = new MessageHeaderAccessor();
245+
MessageBuilder<?> messageBuilder = MessageBuilder.withPayload("payload").setHeaders(headerAccessor);
246+
247+
headerAccessor.setHeader(MessageHeaders.REPLY_CHANNEL, "foo");
248+
Message<?> message1 = messageBuilder.build();
249+
assertThat(message1.getHeaders().get(MessageHeaders.REPLY_CHANNEL)).isEqualTo("foo");
250+
251+
headerAccessor.setHeader("hannel", 0);
252+
Message<?> message2 = messageBuilder.build();
253+
assertThat(message2.getHeaders().get("hannel")).isEqualTo(0);
254+
255+
assertThatIllegalArgumentException()
256+
.isThrownBy(() -> headerAccessor.setHeader(MessageHeaders.REPLY_CHANNEL, 0))
257+
.withMessage("'%s' header value must be a MessageChannel or String", MessageHeaders.REPLY_CHANNEL);
258+
}
259+
241260
}

0 commit comments

Comments
 (0)