Skip to content

Commit

Permalink
INT-4365 Fixed NPE generated by previous commit
Browse files Browse the repository at this point in the history
  • Loading branch information
olegz authored and artembilan committed Nov 28, 2017
1 parent 90c46f5 commit b580878
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ public void setNotPropagatedHeaders(String... headers) {
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));
}

Expand All @@ -153,7 +153,7 @@ private void updateNotPropagatedHeaders(String[] headers, boolean merge) {
this.noHeadersPropagation = true;
}

this.selectiveHeaderPropagation = this.notPropagatedHeaders.length > 0;
this.selectiveHeaderPropagation = !ObjectUtils.isEmpty(this.notPropagatedHeaders);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
* @author Gary Russell
* @author Marius Bogoevici
* @author Artem Bilan
* @author Oleg Zhurakousky
*/
@RunWith(MockitoJUnitRunner.class)
public class AbstractReplyProducingMessageHandlerTests {
Expand Down Expand Up @@ -109,14 +110,42 @@ protected Object handleRequestMessage(Message<?> requestMessage) {
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() {
AbstractReplyProducingMessageHandler handler = new AbstractReplyProducingMessageHandler() {

@Override
protected Object handleRequestMessage(Message<?> requestMessage) {
return new GenericMessage<String>("world", Collections.singletonMap("bar", "RAB"));
return new GenericMessage<>("world", Collections.singletonMap("bar", "RAB"));
}

};
Expand All @@ -125,14 +154,14 @@ protected Object handleRequestMessage(Message<?> requestMessage) {
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());
Expand Down

0 comments on commit b580878

Please sign in to comment.