From a7975c685dd189939b9422c16736ff888408d544 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Tue, 20 Jan 2015 16:01:44 +0100 Subject: [PATCH] AnnotationUtils explicitly handles null parameters Issue: SPR-12604 (cherry picked from commit 0ddf8dd) --- .../core/annotation/AnnotationUtils.java | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 5393f6849f..98d76658f2 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 @@ -35,6 +35,7 @@ import org.springframework.util.Assert; import org.springframework.util.ConcurrentReferenceHashMap; import org.springframework.util.ObjectUtils; import org.springframework.util.ReflectionUtils; +import org.springframework.util.StringUtils; /** * General utility methods for working with annotations, handling bridge methods @@ -654,6 +655,9 @@ public abstract class AnnotationUtils { * @see #getValue(Annotation) */ public static Object getValue(Annotation annotation, String attributeName) { + if (annotation == null || !StringUtils.hasLength(attributeName)) { + return null; + } try { Method method = annotation.annotationType().getDeclaredMethod(attributeName); ReflectionUtils.makeAccessible(method); @@ -683,6 +687,9 @@ public abstract class AnnotationUtils { * @see #getDefaultValue(Class, String) */ public static Object getDefaultValue(Annotation annotation, String attributeName) { + if (annotation == null) { + return null; + } return getDefaultValue(annotation.annotationType(), attributeName); } @@ -706,6 +713,9 @@ public abstract class AnnotationUtils { * @see #getDefaultValue(Annotation, String) */ public static Object getDefaultValue(Class annotationType, String attributeName) { + if (annotationType == null || !StringUtils.hasLength(attributeName)) { + return null; + } try { return annotationType.getDeclaredMethod(attributeName).getDefaultValue(); }