INT-4109: Fix NPE in the IntegrationGraphServer
JIRA: https://jira.spring.io/browse/INT-4109 **Cherry-pick to 4.3.x**
This commit is contained in:
@@ -50,6 +50,7 @@ import org.springframework.util.StringUtils;
|
||||
* Builds the runtime object model graph.
|
||||
*
|
||||
* @author Gary Russell
|
||||
* @author Artem Bilan
|
||||
* @since 4.3
|
||||
*
|
||||
*/
|
||||
@@ -364,11 +365,12 @@ public class IntegrationGraphServer implements ApplicationContextAware, Applicat
|
||||
|
||||
private MessageHandlerNode discardingHandler(String name, IntegrationConsumer consumer,
|
||||
DiscardingMessageHandler handler, String output, String errors, boolean polled) {
|
||||
String discards = handler.getDiscardChannel() != null ? handler.getDiscardChannel().toString() : null;
|
||||
return polled
|
||||
? new ErrorCapableDiscardingMessageHandlerNode(this.nodeId.incrementAndGet(), name, handler,
|
||||
consumer.getInputChannel().toString(), output, handler.getDiscardChannel().toString(), errors)
|
||||
consumer.getInputChannel().toString(), output, discards, errors)
|
||||
: new DiscardingMessageHandlerNode(this.nodeId.incrementAndGet(), name, handler,
|
||||
consumer.getInputChannel().toString(), output, handler.getDiscardChannel().toString());
|
||||
consumer.getInputChannel().toString(), output, discards);
|
||||
}
|
||||
|
||||
private MessageHandlerNode routingHandler(String name, IntegrationConsumer consumer, MessageHandler handler,
|
||||
|
||||
@@ -34,6 +34,7 @@ import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.ImportResource;
|
||||
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||
import org.springframework.integration.annotation.Filter;
|
||||
import org.springframework.integration.annotation.IntegrationComponentScan;
|
||||
import org.springframework.integration.annotation.MessagingGateway;
|
||||
import org.springframework.integration.annotation.Router;
|
||||
@@ -67,6 +68,7 @@ import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
|
||||
/**
|
||||
* @author Gary Russell
|
||||
* @author Artem Bilan
|
||||
* @since 4.3
|
||||
*
|
||||
*/
|
||||
@@ -95,10 +97,10 @@ public class IntegrationGraphServerTests {
|
||||
assertThat(map.size(), is(equalTo(3)));
|
||||
List<Map<?, ?>> nodes = (List<Map<?, ?>>) map.get("nodes");
|
||||
assertThat(nodes, is(notNullValue()));
|
||||
assertThat(nodes.size(), is(equalTo(31)));
|
||||
assertThat(nodes.size(), is(equalTo(32)));
|
||||
List<Map<?, ?>> links = (List<Map<?, ?>>) map.get("links");
|
||||
assertThat(links, is(notNullValue()));
|
||||
assertThat(links.size(), is(equalTo(32)));
|
||||
assertThat(links.size(), is(equalTo(33)));
|
||||
|
||||
toRouter.send(MessageBuilder.withPayload("foo").setHeader("foo", "bar").build());
|
||||
toRouter.send(MessageBuilder.withPayload("foo").setHeader("foo", "baz").build());
|
||||
@@ -117,10 +119,10 @@ public class IntegrationGraphServerTests {
|
||||
assertThat(map.size(), is(equalTo(3)));
|
||||
nodes = (List<Map<?, ?>>) map.get("nodes");
|
||||
assertThat(nodes, is(notNullValue()));
|
||||
assertThat(nodes.size(), is(equalTo(31)));
|
||||
assertThat(nodes.size(), is(equalTo(32)));
|
||||
links = (List<Map<?, ?>>) map.get("links");
|
||||
assertThat(links, is(notNullValue()));
|
||||
assertThat(links.size(), is(equalTo(34)));
|
||||
assertThat(links.size(), is(equalTo(35)));
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@@ -270,6 +272,11 @@ public class IntegrationGraphServerTests {
|
||||
public void bar(String foo) {
|
||||
}
|
||||
|
||||
@Filter(inputChannel = "filterChannel")
|
||||
public boolean filter(String payload) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class BareHandler implements MessageHandler {
|
||||
|
||||
Reference in New Issue
Block a user