diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/ChainParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/ChainParser.java index 43a0f8dd17..c663647ce3 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/ChainParser.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/ChainParser.java @@ -44,7 +44,7 @@ public class ChainParser extends AbstractConsumerEndpointParser { NodeList children = element.getChildNodes(); for (int i = 0; i < children.getLength(); i++) { Node child = children.item(i); - if (child.getNodeType() == Node.ELEMENT_NODE) { + if (child.getNodeType() == Node.ELEMENT_NODE && !"poller".equals(child.getLocalName())) { String childBeanName = this.parseChild((Element) child, parserContext, builder.getBeanDefinition()); handlerList.add(new RuntimeBeanReference(childBeanName)); } diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests-context.xml b/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests-context.xml index 880aa84bd7..91425a9643 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests-context.xml +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests-context.xml @@ -9,6 +9,10 @@ + + + + @@ -30,6 +34,14 @@ + + + + + + + + diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests.java index 42546fe8e3..699da0e4a4 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests.java @@ -41,6 +41,10 @@ public class ChainParserTests extends AbstractJUnit4SpringContextTests { @Qualifier("filterInput") private MessageChannel filterInput; + @Autowired + @Qualifier("pollableInput") + private MessageChannel pollableInput; + @Autowired @Qualifier("headerEnricherInput") private MessageChannel headerEnricherInput; @@ -83,4 +87,13 @@ public class ChainParserTests extends AbstractJUnit4SpringContextTests { assertEquals(123, reply.getHeaders().get("testRef")); } + @Test + public void chainWithPollableInput() { + Message message = MessageBuilder.withPayload("test").build(); + this.pollableInput.send(message); + Message reply = this.output.receive(3000); + assertNotNull(reply); + assertEquals("foo", reply.getPayload()); + } + }