diff --git a/spring-core/src/main/java/org/springframework/core/annotation/AnnotationUtils.java b/spring-core/src/main/java/org/springframework/core/annotation/AnnotationUtils.java index 98d76658f24..687a8cd8a92 100644 --- a/spring-core/src/main/java/org/springframework/core/annotation/AnnotationUtils.java +++ b/spring-core/src/main/java/org/springframework/core/annotation/AnnotationUtils.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. @@ -319,8 +319,8 @@ public abstract class AnnotationUtils { *

The algorithm operates as follows: *

    *
  1. Search for the annotation on the given class and return it if found. - *
  2. Recursively search through all interfaces that the given class declares. *
  3. Recursively search through all annotations that the given class declares. + *
  4. Recursively search through all interfaces that the given class declares. *
  5. Recursively search through the superclass hierarchy of the given class. *
*

Note: in this context, the term recursively means that the search @@ -583,6 +583,7 @@ public abstract class AnnotationUtils { for (Method method : methods) { if (method.getParameterTypes().length == 0 && method.getReturnType() != void.class) { try { + ReflectionUtils.makeAccessible(method); Object value = method.invoke(annotation); attrs.put(method.getName(), adaptValue(value, classValuesAsString, nestedAnnotationsAsMap)); }