@ -624,10 +624,11 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
@@ -624,10 +624,11 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
@ -74,21 +74,31 @@ public class GenericTypeAwareAutowireCandidateResolver implements AutowireCandid
@@ -74,21 +74,31 @@ public class GenericTypeAwareAutowireCandidateResolver implements AutowireCandid
// No generic type -> we know it's a Class type-match, so no need to check again.
// Regular case: straight bean instance, with BeanFactory available.
if(this.beanFactory!=null){
@ -106,7 +116,14 @@ public class GenericTypeAwareAutowireCandidateResolver implements AutowireCandid
@@ -106,7 +116,14 @@ public class GenericTypeAwareAutowireCandidateResolver implements AutowireCandid
/** Package-visible field for caching the determined Class of a given bean definition */
volatileClass<?>resolvedTargetType;
/** Package-visible field for caching the return type of a generically typed factory method */
volatileClass<?>resolvedFactoryMethodReturnType;
/** Common lock for the four constructor fields below */
finalObjectconstructorArgumentLock=newObject();
/** Package-visible field for caching the resolved constructor or factory method */
ExecutableresolvedConstructorOrFactoryMethod;
/** Package-visible field for caching the return type of a generically typed factory method */
volatileClass<?>resolvedFactoryMethodReturnType;
/** Package-visible field that marks the constructor arguments as resolved */
booleanconstructorArgumentsResolved=false;
@ -74,6 +79,7 @@ public class RootBeanDefinition extends AbstractBeanDefinition {
@@ -74,6 +79,7 @@ public class RootBeanDefinition extends AbstractBeanDefinition {
/** Package-visible field for caching partly prepared constructor arguments */
Object[]preparedConstructorArguments;
/** Common lock for the two post-processing fields below */
finalObjectpostProcessingLock=newObject();
/** Package-visible field that indicates MergedBeanDefinitionPostProcessor having been applied */
@ -172,8 +178,8 @@ public class RootBeanDefinition extends AbstractBeanDefinition {
@@ -172,8 +178,8 @@ public class RootBeanDefinition extends AbstractBeanDefinition {
@ -214,19 +220,32 @@ public class RootBeanDefinition extends AbstractBeanDefinition {
@@ -214,19 +220,32 @@ public class RootBeanDefinition extends AbstractBeanDefinition {
@ -2047,6 +2048,24 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@@ -2047,6 +2048,24 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@ -3139,6 +3158,37 @@ public class AutowiredAnnotationBeanPostProcessorTests {
@@ -3139,6 +3158,37 @@ public class AutowiredAnnotationBeanPostProcessorTests {