diff --git a/spring-core/src/main/java/org/springframework/core/MethodParameter.java b/spring-core/src/main/java/org/springframework/core/MethodParameter.java index 628558082277..a51418d25bac 100644 --- a/spring-core/src/main/java/org/springframework/core/MethodParameter.java +++ b/spring-core/src/main/java/org/springframework/core/MethodParameter.java @@ -647,7 +647,7 @@ public Annotation[] getParameterAnnotations() { // for inner classes, so access it with the actual parameter index lowered by 1 index = this.parameterIndex - 1; } - paramAnns = (index >= 0 && index < annotationArray.length ? + paramAnns = (index >= 0 && index < annotationArray.length && annotationArray[index].length > 0 ? adaptAnnotationArray(annotationArray[index]) : EMPTY_ANNOTATION_ARRAY); this.parameterAnnotations = paramAnns; } @@ -916,7 +916,7 @@ public Annotation[] getParameterAnnotations() { merged.add(fieldAnn); } } - anns = merged.toArray(new Annotation[0]); + anns = merged.toArray(EMPTY_ANNOTATION_ARRAY); } } catch (NoSuchFieldException | SecurityException ex) {