avoid failures in case of manually registered null instance (SPR-7523)
This commit is contained in:
@@ -373,6 +373,9 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp
|
||||
return !BeanFactoryUtils.isFactoryDereference(name);
|
||||
}
|
||||
}
|
||||
else if (containsSingleton(beanName)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
else {
|
||||
// No singleton instance found -> check bean definition.
|
||||
@@ -465,6 +468,10 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp
|
||||
typeToMatch.isAssignableFrom(beanInstance.getClass());
|
||||
}
|
||||
}
|
||||
else if (containsSingleton(beanName) && !containsBeanDefinition(beanName)) {
|
||||
// null instance registered
|
||||
return false;
|
||||
}
|
||||
|
||||
else {
|
||||
// No singleton instance found -> check bean definition.
|
||||
@@ -524,6 +531,10 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp
|
||||
return beanInstance.getClass();
|
||||
}
|
||||
}
|
||||
else if (containsSingleton(beanName) && !containsBeanDefinition(beanName)) {
|
||||
// null instance registered
|
||||
return null;
|
||||
}
|
||||
|
||||
else {
|
||||
// No singleton instance found -> check bean definition.
|
||||
@@ -860,6 +871,10 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp
|
||||
if (beanInstance != null) {
|
||||
return (beanInstance instanceof FactoryBean);
|
||||
}
|
||||
else if (containsSingleton(beanName)) {
|
||||
// null instance registered
|
||||
return false;
|
||||
}
|
||||
|
||||
// No singleton instance found -> check bean definition.
|
||||
if (!containsBeanDefinition(beanName) && getParentBeanFactory() instanceof ConfigurableBeanFactory) {
|
||||
|
||||
Reference in New Issue
Block a user