Lite configuration candidate check defensively handles method introspection failure
Issue: SPR-13091
This commit is contained in:
parent
8c337a48a9
commit
4f1286a4c3
|
@ -161,13 +161,25 @@ abstract class ConfigurationClassUtils {
|
||||||
if (metadata.isInterface()) {
|
if (metadata.isInterface()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Any of the typical annotations found?
|
||||||
for (String indicator : candidateIndicators) {
|
for (String indicator : candidateIndicators) {
|
||||||
if (metadata.isAnnotated(indicator)) {
|
if (metadata.isAnnotated(indicator)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Finally, let's look for @Bean methods...
|
||||||
|
try {
|
||||||
return metadata.hasAnnotatedMethods(Bean.class.getName());
|
return metadata.hasAnnotatedMethods(Bean.class.getName());
|
||||||
}
|
}
|
||||||
|
catch (Throwable ex) {
|
||||||
|
if (logger.isDebugEnabled()) {
|
||||||
|
logger.debug("Failed to introspect @Bean methods on class [" + metadata.getClass() + "]: " + ex);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine whether the given bean definition indicates a full {@code @Configuration}
|
* Determine whether the given bean definition indicates a full {@code @Configuration}
|
||||||
|
|
Loading…
Reference in New Issue