diff --git a/spring-core/src/main/java/org/springframework/core/annotation/AnnotatedElementUtils.java b/spring-core/src/main/java/org/springframework/core/annotation/AnnotatedElementUtils.java index b7a528609d7..c5932b94596 100644 --- a/spring-core/src/main/java/org/springframework/core/annotation/AnnotatedElementUtils.java +++ b/spring-core/src/main/java/org/springframework/core/annotation/AnnotatedElementUtils.java @@ -163,7 +163,7 @@ public class AnnotatedElementUtils { new HashSet(), 0); } catch (Throwable ex) { - throw new IllegalStateException("Failed to introspect annotations: " + element, ex); + throw new IllegalStateException("Failed to introspect annotations on " + element, ex); } } diff --git a/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java b/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java index cc2a86ce090..157d7860d9d 100644 --- a/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java +++ b/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2014 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -126,25 +126,35 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements @Override public boolean hasAnnotatedMethods(String annotationType) { - Method[] methods = getIntrospectedClass().getDeclaredMethods(); - for (Method method : methods) { - if (!method.isBridge() && AnnotatedElementUtils.isAnnotated(method, annotationType)) { - return true; + try { + Method[] methods = getIntrospectedClass().getDeclaredMethods(); + for (Method method : methods) { + if (!method.isBridge() && AnnotatedElementUtils.isAnnotated(method, annotationType)) { + return true; + } } + return false; + } + catch (Throwable ex) { + throw new IllegalStateException("Failed to introspect annotated methods on " + getIntrospectedClass(), ex); } - return false; } @Override public Set getAnnotatedMethods(String annotationType) { - Method[] methods = getIntrospectedClass().getDeclaredMethods(); - Set annotatedMethods = new LinkedHashSet(); - for (Method method : methods) { - if (!method.isBridge() && AnnotatedElementUtils.isAnnotated(method, annotationType)) { - annotatedMethods.add(new StandardMethodMetadata(method, this.nestedAnnotationsAsMap)); + try { + Method[] methods = getIntrospectedClass().getDeclaredMethods(); + Set annotatedMethods = new LinkedHashSet(); + for (Method method : methods) { + if (!method.isBridge() && AnnotatedElementUtils.isAnnotated(method, annotationType)) { + annotatedMethods.add(new StandardMethodMetadata(method, this.nestedAnnotationsAsMap)); + } } + return annotatedMethods; + } + catch (Throwable ex) { + throw new IllegalStateException("Failed to introspect annotated methods on " + getIntrospectedClass(), ex); } - return annotatedMethods; } }