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());
+ }
+
}