Refined predictBeanType's typesToMatch check for FactoryBeans

GroovyScriptFactoryTests passes again now.

Issue: SPR-10304
master
Juergen Hoeller 12 years ago committed by unknown
parent 9929182e30
commit e0c7571a41
  1. 9
      spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java

@ -582,11 +582,10 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
for (BeanPostProcessor bp : getBeanPostProcessors()) { for (BeanPostProcessor bp : getBeanPostProcessors()) {
if (bp instanceof SmartInstantiationAwareBeanPostProcessor) { if (bp instanceof SmartInstantiationAwareBeanPostProcessor) {
SmartInstantiationAwareBeanPostProcessor ibp = (SmartInstantiationAwareBeanPostProcessor) bp; SmartInstantiationAwareBeanPostProcessor ibp = (SmartInstantiationAwareBeanPostProcessor) bp;
Class predictedType = ibp.predictBeanType(beanClass, beanName); Class predicted = ibp.predictBeanType(beanClass, beanName);
if (predictedType != null && (typesToMatch.length > 1 || if (predicted != null && (typesToMatch.length != 1 || !FactoryBean.class.equals(typesToMatch[0]) ||
(typesToMatch.length > 0 && !FactoryBean.class.equals(typesToMatch[0])) || FactoryBean.class.isAssignableFrom(predicted))) {
FactoryBean.class.isAssignableFrom(predictedType))) { return predicted;
return predictedType;
} }
} }
} }

Loading…
Cancel
Save