Skip to content

Commit 02d05ed

Browse files
committed
Consistent lookup of parameter-level JsonView annotation
Issue: SPR-13265
1 parent b7bdd72 commit 02d05ed

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -262,28 +262,26 @@ protected Object convertToInternal(Object payload, MessageHeaders headers, Objec
262262
* @param conversionHint the conversion hint Object as passed into the
263263
* converter for the current conversion attempt
264264
* @return the serialization view class, or {@code null} if none
265+
* @since 4.2
265266
*/
266267
protected Class<?> getSerializationView(Object conversionHint) {
267268
if (conversionHint instanceof MethodParameter) {
268-
MethodParameter methodParam = (MethodParameter) conversionHint;
269-
JsonView annotation = methodParam.getParameterAnnotation(JsonView.class);
270-
if (annotation == null) {
271-
annotation = methodParam.getMethodAnnotation(JsonView.class);
272-
if (annotation == null) {
273-
return null;
274-
}
269+
MethodParameter param = (MethodParameter) conversionHint;
270+
JsonView annotation = (param.getParameterIndex() >= 0 ?
271+
param.getParameterAnnotation(JsonView.class) : param.getMethodAnnotation(JsonView.class));
272+
if (annotation != null) {
273+
return extractViewClass(annotation, conversionHint);
275274
}
276-
return extractViewClass(annotation, conversionHint);
277275
}
278276
else if (conversionHint instanceof JsonView) {
279277
return extractViewClass((JsonView) conversionHint, conversionHint);
280278
}
281279
else if (conversionHint instanceof Class) {
282280
return (Class) conversionHint;
283281
}
284-
else {
285-
return null;
286-
}
282+
283+
// No JSON view specified...
284+
return null;
287285
}
288286

289287
private Class<?> extractViewClass(JsonView annotation, Object conversionHint) {

0 commit comments

Comments
 (0)