Browse Source

AnnotationUtils caches findAnnotation results in pre-synthesized form

Issue: SPR-13621
pull/910/head
Juergen Hoeller 10 years ago
parent
commit
c3dbaed4ce
  1. 8
      spring-core/src/main/java/org/springframework/core/annotation/AnnotationUtils.java

8
spring-core/src/main/java/org/springframework/core/annotation/AnnotationUtils.java

@ -583,11 +583,12 @@ public abstract class AnnotationUtils { @@ -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 { @@ -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;
}
/**

Loading…
Cancel
Save