Lite configuration candidate check defensively handles method introspection failure

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

@ -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…
Cancel
Save