@ -765,8 +765,10 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
}
}
}
}
BeanDefinition oldBeanDefinition ;
synchronized ( this . beanDefinitionMap ) {
synchronized ( this . beanDefinitionMap ) {
BeanDefinition oldBeanDefinition = this . beanDefinitionMap . get ( beanName ) ;
oldBeanDefinition = this . beanDefinitionMap . get ( beanName ) ;
if ( oldBeanDefinition ! = null ) {
if ( oldBeanDefinition ! = null ) {
if ( ! this . allowBeanDefinitionOverriding ) {
if ( ! this . allowBeanDefinitionOverriding ) {
throw new BeanDefinitionStoreException ( beanDefinition . getResourceDescription ( ) , beanName ,
throw new BeanDefinitionStoreException ( beanDefinition . getResourceDescription ( ) , beanName ,
@ -795,7 +797,9 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
this . beanDefinitionMap . put ( beanName , beanDefinition ) ;
this . beanDefinitionMap . put ( beanName , beanDefinition ) ;
}
}
resetBeanDefinition ( beanName ) ;
if ( oldBeanDefinition ! = null | | containsSingleton ( beanName ) ) {
resetBeanDefinition ( beanName ) ;
}
}
}
@Override
@Override
@ -831,9 +835,6 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
// (e.g. the default StaticMessageSource in a StaticApplicationContext).
// (e.g. the default StaticMessageSource in a StaticApplicationContext).
destroySingleton ( beanName ) ;
destroySingleton ( beanName ) ;
// Remove any assumptions about by-type mappings.
clearByTypeCache ( ) ;
// Reset all bean definitions that have the given bean as parent (recursively).
// Reset all bean definitions that have the given bean as parent (recursively).
for ( String bdName : this . beanDefinitionNames ) {
for ( String bdName : this . beanDefinitionNames ) {
if ( ! beanName . equals ( bdName ) ) {
if ( ! beanName . equals ( bdName ) ) {