From 5b654913f1d4034f6cca4b248114438cf17f4ab2 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Mon, 24 Nov 2008 19:45:34 +0000 Subject: [PATCH] Creating child ParserContext with containingBeanDefinition to prevent extra bean definition registrations when parsing the child elements. --- .../springframework/integration/config/xml/ChainParser.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 dd94116b9c..1f402d05cf 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,10 +44,12 @@ public class ChainParser extends AbstractConsumerEndpointParser { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(MessageHandlerChain.class); ManagedList handlerList = new ManagedList(); NodeList children = element.getChildNodes(); + ParserContext childContext = new ParserContext( + parserContext.getReaderContext(), parserContext.getDelegate(), builder.getBeanDefinition()); for (int i = 0; i < children.getLength(); i++) { Node child = children.item(i); if (child.getNodeType() == Node.ELEMENT_NODE) { - String childBeanName = this.parseChild((Element) child, parserContext); + String childBeanName = this.parseChild((Element) child, childContext); handlerList.add(new RuntimeBeanReference(childBeanName)); } }