From 0ddf8dde128a1904bfe5af30817836ac09e07f1c 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 --- .../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 e8805c205b..23d7b00f16 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(); } -- GitLab