INT-4365 Fixed NPE generated by previous commit
JIRA: https://jira.spring.io/browse/INT-4365
This commit is contained in:
committed by
Artem Bilan
parent
90c46f5a79
commit
b58087881a
@@ -134,7 +134,7 @@ public abstract class AbstractMessageProducingHandler extends AbstractMessageHan
|
||||
private void updateNotPropagatedHeaders(String[] headers, boolean merge) {
|
||||
Set<String> headerPatterns = new HashSet<>();
|
||||
|
||||
if (merge) {
|
||||
if (merge && this.notPropagatedHeaders != null) {
|
||||
headerPatterns.addAll(Arrays.asList(this.notPropagatedHeaders));
|
||||
}
|
||||
|
||||
@@ -153,7 +153,7 @@ public abstract class AbstractMessageProducingHandler extends AbstractMessageHan
|
||||
this.noHeadersPropagation = true;
|
||||
}
|
||||
|
||||
this.selectiveHeaderPropagation = this.notPropagatedHeaders.length > 0;
|
||||
this.selectiveHeaderPropagation = !ObjectUtils.isEmpty(this.notPropagatedHeaders);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -47,6 +47,7 @@ import org.springframework.messaging.support.GenericMessage;
|
||||
* @author Gary Russell
|
||||
* @author Marius Bogoevici
|
||||
* @author Artem Bilan
|
||||
* @author Oleg Zhurakousky
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class AbstractReplyProducingMessageHandlerTests {
|
||||
@@ -109,6 +110,34 @@ public class AbstractReplyProducingMessageHandlerTests {
|
||||
assertThat(out.getHeaders().get("baz"), equalTo("BAZ"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void testNotPropagateAddWhenNonExist() {
|
||||
AbstractReplyProducingMessageHandler handler = new AbstractReplyProducingMessageHandler() {
|
||||
|
||||
@Override
|
||||
protected Object handleRequestMessage(Message<?> requestMessage) {
|
||||
return new GenericMessage<>("world", Collections.singletonMap("bar", "RAB"));
|
||||
}
|
||||
|
||||
};
|
||||
handler.addNotPropagatedHeaders("boom");
|
||||
assertThat(handler.getNotPropagatedHeaders(), containsInAnyOrder("boom"));
|
||||
handler.setOutputChannel(this.channel);
|
||||
ArgumentCaptor<Message<?>> captor = ArgumentCaptor.forClass(Message.class);
|
||||
willReturn(true).given(this.channel).send(captor.capture());
|
||||
handler.handleMessage(MessageBuilder.withPayload("hello")
|
||||
.setHeader("boom", "FOO")
|
||||
.setHeader("bar", "BAR")
|
||||
.setHeader("baz", "BAZ")
|
||||
.build());
|
||||
Message<?> out = captor.getValue();
|
||||
assertThat(out, notNullValue());
|
||||
assertThat(out.getHeaders().get("boom"), nullValue());
|
||||
assertThat(out.getHeaders().get("bar"), equalTo("RAB"));
|
||||
assertThat(out.getHeaders().get("baz"), equalTo("BAZ"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void testNotPropagateAdd() {
|
||||
@@ -116,7 +145,7 @@ public class AbstractReplyProducingMessageHandlerTests {
|
||||
|
||||
@Override
|
||||
protected Object handleRequestMessage(Message<?> requestMessage) {
|
||||
return new GenericMessage<String>("world", Collections.singletonMap("bar", "RAB"));
|
||||
return new GenericMessage<>("world", Collections.singletonMap("bar", "RAB"));
|
||||
}
|
||||
|
||||
};
|
||||
@@ -125,14 +154,14 @@ public class AbstractReplyProducingMessageHandlerTests {
|
||||
handler.addNotPropagatedHeaders("b*r");
|
||||
handler.setOutputChannel(this.channel);
|
||||
assertThat(handler.getNotPropagatedHeaders(), containsInAnyOrder("foo", "b*r"));
|
||||
ArgumentCaptor<Message<?>> captor =
|
||||
(ArgumentCaptor<Message<?>>) (ArgumentCaptor<?>) ArgumentCaptor.forClass(Message.class);
|
||||
ArgumentCaptor<Message<?>> captor = ArgumentCaptor.forClass(Message.class);
|
||||
willReturn(true).given(this.channel).send(captor.capture());
|
||||
handler.handleMessage(MessageBuilder.withPayload("hello")
|
||||
.setHeader("foo", "FOO")
|
||||
.setHeader("bar", "BAR")
|
||||
.setHeader("baz", "BAZ")
|
||||
.build());
|
||||
handler.handleMessage(
|
||||
MessageBuilder.withPayload("hello")
|
||||
.setHeader("foo", "FOO")
|
||||
.setHeader("bar", "BAR")
|
||||
.setHeader("baz", "BAZ")
|
||||
.build());
|
||||
Message<?> out = captor.getValue();
|
||||
assertThat(out, notNullValue());
|
||||
assertThat(out.getHeaders().get("foo"), nullValue());
|
||||
|
||||
Reference in New Issue
Block a user