when I upgraded SI 1.0.0 to 1.0.1, it throws exception as follows:
I inspected the source code of SI and find the reason was the changes in IntegrationNamespaceHandler.java. The DefaultConfiguringBeanFactoryPostProcessor should be registered only once, but if the allowBeanDefinitionOverriding field of DefaultListableBeanFactory was setted as false, in some condition, this exception occurs. For example, in my project, I set allowBeanDefinitionOverriding as false and have several classes implement the BeanFactoryPostProcessor interface, which then load SI xml configuration files respectively in postProcessBeanFactory method, then the exception occurs. In this condition, the DefaultConfiguringBeanFactoryPostProcessor was registered several times. While in SI 1.0.0, all runs well.Code:org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'org.springframework.integration.internalDefaultConfiguringBeanFactoryPostProcessor' defined in null: Cannot register bean definition [Generic bean: class [org.springframework.integration.config.xml.DefaultConfiguringBeanFactoryPostProcessor]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] for bean 'org.springframework.integration.internalDefaultConfiguringBeanFactoryPostProcessor': There is already [Generic bean: class [org.springframework.integration.config.xml.DefaultConfiguringBeanFactoryPostProcessor]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] bound. at org.springframework.beans.factory.support.DefaultListableBeanFactory.registerBeanDefinition(DefaultListableBeanFactory.java:461) at org.springframework.beans.factory.support.BeanDefinitionReaderUtils.registerBeanDefinition(BeanDefinitionReaderUtils.java:174) at org.springframework.integration.config.xml.IntegrationNamespaceHandler.registerDefaultConfiguringBeanFactoryPostProcessor(IntegrationNamespaceHandler.java:68) at org.springframework.integration.config.xml.IntegrationNamespaceHandler.parse(IntegrationNamespaceHandler.java:51) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1297) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1287) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:135) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:507) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:398) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310) ......


Reply With Quote