Prepare method overrides when bean class gets resolved
See gh-31826
This commit is contained in:
parent
2acc7c609f
commit
cd64e6676c
|
@ -496,15 +496,13 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
|
||||||
if (resolvedClass != null && !mbd.hasBeanClass() && mbd.getBeanClassName() != null) {
|
if (resolvedClass != null && !mbd.hasBeanClass() && mbd.getBeanClassName() != null) {
|
||||||
mbdToUse = new RootBeanDefinition(mbd);
|
mbdToUse = new RootBeanDefinition(mbd);
|
||||||
mbdToUse.setBeanClass(resolvedClass);
|
mbdToUse.setBeanClass(resolvedClass);
|
||||||
}
|
try {
|
||||||
|
mbdToUse.prepareMethodOverrides();
|
||||||
// Prepare method overrides.
|
}
|
||||||
try {
|
catch (BeanDefinitionValidationException ex) {
|
||||||
mbdToUse.prepareMethodOverrides();
|
throw new BeanDefinitionStoreException(mbdToUse.getResourceDescription(),
|
||||||
}
|
beanName, "Validation of method overrides failed", ex);
|
||||||
catch (BeanDefinitionValidationException ex) {
|
}
|
||||||
throw new BeanDefinitionStoreException(mbdToUse.getResourceDescription(),
|
|
||||||
beanName, "Validation of method overrides failed", ex);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -1503,7 +1503,11 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp
|
||||||
if (mbd.hasBeanClass()) {
|
if (mbd.hasBeanClass()) {
|
||||||
return mbd.getBeanClass();
|
return mbd.getBeanClass();
|
||||||
}
|
}
|
||||||
return doResolveBeanClass(mbd, typesToMatch);
|
Class<?> beanClass = doResolveBeanClass(mbd, typesToMatch);
|
||||||
|
if (mbd.hasBeanClass()) {
|
||||||
|
mbd.prepareMethodOverrides();
|
||||||
|
}
|
||||||
|
return beanClass;
|
||||||
}
|
}
|
||||||
catch (ClassNotFoundException ex) {
|
catch (ClassNotFoundException ex) {
|
||||||
throw new CannotLoadBeanClassException(mbd.getResourceDescription(), beanName, mbd.getBeanClassName(), ex);
|
throw new CannotLoadBeanClassException(mbd.getResourceDescription(), beanName, mbd.getBeanClassName(), ex);
|
||||||
|
@ -1511,6 +1515,10 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp
|
||||||
catch (LinkageError err) {
|
catch (LinkageError err) {
|
||||||
throw new CannotLoadBeanClassException(mbd.getResourceDescription(), beanName, mbd.getBeanClassName(), err);
|
throw new CannotLoadBeanClassException(mbd.getResourceDescription(), beanName, mbd.getBeanClassName(), err);
|
||||||
}
|
}
|
||||||
|
catch (BeanDefinitionValidationException ex) {
|
||||||
|
throw new BeanDefinitionStoreException(mbd.getResourceDescription(),
|
||||||
|
beanName, "Validation of method overrides failed", ex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|
Loading…
Reference in New Issue