diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java index 32084d33e5c0..396962a2f40a 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java @@ -459,7 +459,10 @@ private void determineCompatibleMediaTypes( for (MediaType requestedType : acceptableTypes) { for (MediaType producibleType : producibleTypes) { if (requestedType.isCompatibleWith(producibleType)) { - mediaTypesToUse.add(getMostSpecificMediaType(requestedType, producibleType)); + MediaType mostSpecificMediaType = getMostSpecificMediaType(requestedType, producibleType); + if (!mediaTypesToUse.contains(mostSpecificMediaType)) { + mediaTypesToUse.add(mostSpecificMediaType); + } } } }