From 3cb3eeb213ae50c36c0b78ecb59046a471ba2fa1 Mon Sep 17 00:00:00 2001 From: Brian Date: Thu, 22 Mar 2018 15:42:09 -0700 Subject: [PATCH] SPR-16627 - Address race condition within spring that causes about-to-be-created-bean exceptions --- .../factory/support/AbstractAutowireCapableBeanFactory.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java index 41589161abd7..31ad68f820a1 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java @@ -927,6 +927,12 @@ private FactoryBean getSingletonFactoryBeanForTypeCheck(String beanName, Root if (bw != null) { return (FactoryBean) bw.getWrappedInstance(); } + + Object beanInstance = getSingleton(beanName, false); + if (beanInstance != null) { + return (FactoryBean) beanInstance; + } + if (isSingletonCurrentlyInCreation(beanName) || (mbd.getFactoryBeanName() != null && isSingletonCurrentlyInCreation(mbd.getFactoryBeanName()))) { return null;