diff --git a/core/src/main/java/com/opensymphony/xwork2/util/AnnotationUtils.java b/core/src/main/java/com/opensymphony/xwork2/util/AnnotationUtils.java index 1273b5036..c08841c63 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/AnnotationUtils.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/AnnotationUtils.java @@ -140,13 +140,16 @@ public class AnnotationUtils { */ public static T findAnnotation(Class clazz, Class annotationClass) { T ann = clazz.getAnnotation(annotationClass); - if (ann == null && clazz != Object.class) { + while (ann == null && clazz != null) { ann = clazz.getAnnotation(annotationClass); if (ann == null) { ann = clazz.getPackage().getAnnotation(annotationClass); } - if (ann == null && clazz != Object.class) { - ann = findAnnotation(clazz.getSuperclass(), annotationClass); + if (ann == null) { + clazz = clazz.getSuperclass(); + if (clazz != null) { + ann = clazz.getAnnotation(annotationClass); + } } }