avoid failures in case of manually registered null instance (SPR-7523)

This commit is contained in:
Juergen Hoeller
2010-09-06 19:47:16 +00:00
parent b67da6c3f8
commit 05a3f3ad8d
2 changed files with 51 additions and 0 deletions

View File

@@ -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) {