Protect against ArrayIndexOutOfBoundsException

Update logic in AbstractAutowireCapableBeanFactory.predictBeanType to
protect against a ArrayIndexOutOfBoundsException.

Issue: SPR-10304
master
Phillip Webb 12 years ago
parent 893574be0e
commit 608dab28bf
  1. 5
      spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java

@ -583,8 +583,9 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
if (bp instanceof SmartInstantiationAwareBeanPostProcessor) {
SmartInstantiationAwareBeanPostProcessor ibp = (SmartInstantiationAwareBeanPostProcessor) bp;
Class predictedType = ibp.predictBeanType(beanClass, beanName);
if (predictedType != null && (typesToMatch.length != 1 ||
!FactoryBean.class.equals(typesToMatch[0]) || FactoryBean.class.isAssignableFrom(predictedType))) {
if (predictedType != null && (typesToMatch.length > 1 ||
(typesToMatch.length > 0 && !FactoryBean.class.equals(typesToMatch[0])) ||
FactoryBean.class.isAssignableFrom(predictedType))) {
return predictedType;
}
}

Loading…
Cancel
Save