Lite configuration candidate check defensively handles method introspection failure

Issue: SPR-13091
master
Juergen Hoeller 9 years ago
parent 8c337a48a9
commit 4f1286a4c3
  1. 14
      spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassUtils.java

@ -161,12 +161,24 @@ 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;
} }
} }
return metadata.hasAnnotatedMethods(Bean.class.getName());
// Finally, let's look for @Bean methods...
try {
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;
}
} }
/** /**

Loading…
Cancel
Save