AnnotationUtils caches findAnnotation results in pre-synthesized form

Issue: SPR-13621
This commit is contained in:
Juergen Hoeller 2015-11-02 21:25:08 +01:00
parent 4dc31667d4
commit c3dbaed4ce
1 changed files with 5 additions and 3 deletions

View File

@ -583,11 +583,12 @@ public abstract class AnnotationUtils {
}
if (result != null) {
result = synthesizeAnnotation(result, method);
findAnnotationCache.put(cacheKey, result);
}
}
return synthesizeAnnotation(result, method);
return result;
}
private static <A extends Annotation> A searchOnInterfaces(Method method, Class<A> annotationType, Class<?>... ifcs) {
@ -672,11 +673,12 @@ public abstract class AnnotationUtils {
A result = (A) findAnnotationCache.get(cacheKey);
if (result == null) {
result = findAnnotation(clazz, annotationType, new HashSet<Annotation>());
if (result != null) {
if (result != null && synthesize) {
result = synthesizeAnnotation(result, clazz);
findAnnotationCache.put(cacheKey, result);
}
}
return (synthesize ? synthesizeAnnotation(result, clazz) : result);
return result;
}
/**