Merge branch '6.2.x'
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -331,7 +331,7 @@ public class MessageHeaderAccessor {
|
||||
protected void verifyType(@Nullable String headerName, @Nullable Object headerValue) {
|
||||
if (headerName != null && headerValue != null) {
|
||||
if (MessageHeaders.ERROR_CHANNEL.equals(headerName) ||
|
||||
MessageHeaders.REPLY_CHANNEL.endsWith(headerName)) {
|
||||
MessageHeaders.REPLY_CHANNEL.equals(headerName)) {
|
||||
if (!(headerValue instanceof MessageChannel || headerValue instanceof String)) {
|
||||
throw new IllegalArgumentException(
|
||||
"'" + headerName + "' header value must be a MessageChannel or String");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -34,6 +34,7 @@ import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
* @author Rossen Stoyanchev
|
||||
* @author Mengqi Xu
|
||||
*/
|
||||
class MessageBuilderTests {
|
||||
|
||||
@@ -238,4 +239,22 @@ class MessageBuilderTests {
|
||||
assertThat(message3.getHeaders().get("foo")).isEqualTo("bar3");
|
||||
}
|
||||
|
||||
@Test // gh-34949
|
||||
void buildMessageWithReplyChannelHeader() {
|
||||
MessageHeaderAccessor headerAccessor = new MessageHeaderAccessor();
|
||||
MessageBuilder<?> messageBuilder = MessageBuilder.withPayload("payload").setHeaders(headerAccessor);
|
||||
|
||||
headerAccessor.setHeader(MessageHeaders.REPLY_CHANNEL, "foo");
|
||||
Message<?> message1 = messageBuilder.build();
|
||||
assertThat(message1.getHeaders().get(MessageHeaders.REPLY_CHANNEL)).isEqualTo("foo");
|
||||
|
||||
headerAccessor.setHeader("hannel", 0);
|
||||
Message<?> message2 = messageBuilder.build();
|
||||
assertThat(message2.getHeaders().get("hannel")).isEqualTo(0);
|
||||
|
||||
assertThatIllegalArgumentException()
|
||||
.isThrownBy(() -> headerAccessor.setHeader(MessageHeaders.REPLY_CHANNEL, 0))
|
||||
.withMessage("'%s' header value must be a MessageChannel or String", MessageHeaders.REPLY_CHANNEL);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user