Null-returning instance supplier resolves to NullBean

Issue: SPR-17057
This commit is contained in:
Juergen Hoeller
2018-07-18 15:26:06 +02:00
parent f8553117d0
commit 28f7b26294
2 changed files with 25 additions and 3 deletions

View File

@@ -1148,9 +1148,10 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
* @see #getObjectForBeanInstance
*/
protected BeanWrapper obtainFromSupplier(Supplier<?> instanceSupplier, String beanName) {
Object instance;
String outerBean = this.currentlyCreatedBean.get();
this.currentlyCreatedBean.set(beanName);
Object instance;
try {
instance = instanceSupplier.get();
}
@@ -1162,6 +1163,10 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
this.currentlyCreatedBean.remove();
}
}
if (instance == null) {
instance = new NullBean();
}
BeanWrapper bw = new BeanWrapperImpl(instance);
initBeanWrapper(bw);
return bw;