Skip to content

Commit 3a11ba9

Browse files
committed
Fix verify type for "REPLY_CHANNEL" header value
// gh-34881 Signed-off-by: Mengqi Xu <2663479778@qq.com>
1 parent 6f6e0d4 commit 3a11ba9

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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,21 @@ void buildMultipleMessages() {
238239
assertThat(message3.getHeaders().get("foo")).isEqualTo("bar3");
239240
}
240241

242+
@Test
243+
void buildReplyChannelHeaderMessage() {
244+
MessageHeaderAccessor headerAccessor = new MessageHeaderAccessor();
245+
MessageBuilder<?> messageBuilder = MessageBuilder.withPayload("payload").setHeaders(headerAccessor);
246+
247+
headerAccessor.setHeader("replyChannel", "foo");
248+
Message<?> message1 = messageBuilder.build();
249+
250+
headerAccessor.setHeader("hannel", 0);
251+
Message<?> message2 = messageBuilder.build();
252+
253+
assertThat(message1.getHeaders().get("replyChannel")).isEqualTo("foo");
254+
assertThat(message2.getHeaders().get("hannel")).isEqualTo(0);
255+
256+
assertThatIllegalArgumentException().isThrownBy(() -> headerAccessor.setHeader("replyChannel", 0));
257+
}
258+
241259
}

0 commit comments

Comments
 (0)