提交 0ddf8dde 编写于 作者: J Juergen Hoeller

AnnotationUtils explicitly handles null parameters

Issue: SPR-12604
上级 028c0e8b
...@@ -35,6 +35,7 @@ import org.springframework.util.Assert; ...@@ -35,6 +35,7 @@ import org.springframework.util.Assert;
import org.springframework.util.ConcurrentReferenceHashMap; import org.springframework.util.ConcurrentReferenceHashMap;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.util.ReflectionUtils; import org.springframework.util.ReflectionUtils;
import org.springframework.util.StringUtils;
/** /**
* General utility methods for working with annotations, handling bridge methods * General utility methods for working with annotations, handling bridge methods
...@@ -654,6 +655,9 @@ public abstract class AnnotationUtils { ...@@ -654,6 +655,9 @@ public abstract class AnnotationUtils {
* @see #getValue(Annotation) * @see #getValue(Annotation)
*/ */
public static Object getValue(Annotation annotation, String attributeName) { public static Object getValue(Annotation annotation, String attributeName) {
if (annotation == null || !StringUtils.hasLength(attributeName)) {
return null;
}
try { try {
Method method = annotation.annotationType().getDeclaredMethod(attributeName); Method method = annotation.annotationType().getDeclaredMethod(attributeName);
ReflectionUtils.makeAccessible(method); ReflectionUtils.makeAccessible(method);
...@@ -683,6 +687,9 @@ public abstract class AnnotationUtils { ...@@ -683,6 +687,9 @@ public abstract class AnnotationUtils {
* @see #getDefaultValue(Class, String) * @see #getDefaultValue(Class, String)
*/ */
public static Object getDefaultValue(Annotation annotation, String attributeName) { public static Object getDefaultValue(Annotation annotation, String attributeName) {
if (annotation == null) {
return null;
}
return getDefaultValue(annotation.annotationType(), attributeName); return getDefaultValue(annotation.annotationType(), attributeName);
} }
...@@ -706,6 +713,9 @@ public abstract class AnnotationUtils { ...@@ -706,6 +713,9 @@ public abstract class AnnotationUtils {
* @see #getDefaultValue(Annotation, String) * @see #getDefaultValue(Annotation, String)
*/ */
public static Object getDefaultValue(Class<? extends Annotation> annotationType, String attributeName) { public static Object getDefaultValue(Class<? extends Annotation> annotationType, String attributeName) {
if (annotationType == null || !StringUtils.hasLength(attributeName)) {
return null;
}
try { try {
return annotationType.getDeclaredMethod(attributeName).getDefaultValue(); return annotationType.getDeclaredMethod(attributeName).getDefaultValue();
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册