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 fd0b45c8122..7e37632960b 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 @@ -196,7 +196,7 @@ public abstract class AbstractMessageConverterMethodProcessor extends AbstractMe */ private MediaType getMostSpecificMediaType(MediaType acceptType, MediaType produceType) { produceType = produceType.copyQualityValue(acceptType); - return MediaType.SPECIFICITY_COMPARATOR.compare(acceptType, produceType) < 0 ? acceptType : produceType; + return MediaType.SPECIFICITY_COMPARATOR.compare(acceptType, produceType) <= 0 ? acceptType : produceType; } } \ No newline at end of file diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestResponseBodyMethodProcessorMockTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestResponseBodyMethodProcessorMockTests.java index 0788265b1c3..c74159b0fea 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestResponseBodyMethodProcessorMockTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestResponseBodyMethodProcessorMockTests.java @@ -301,35 +301,6 @@ public class RequestResponseBodyMethodProcessorMockTests { verify(messageConverter); } - // SPR-9160 - - @Test - public void handleReturnValueSortByQuality() throws Exception { - this.servletRequest.addHeader("Accept", "text/plain; q=0.5, application/json"); - - List> converters = new ArrayList>(); - converters.add(new MappingJackson2HttpMessageConverter()); - converters.add(new StringHttpMessageConverter()); - RequestResponseBodyMethodProcessor handler = new RequestResponseBodyMethodProcessor(converters); - - handler.writeWithMessageConverters("Foo", returnTypeStringProduces, webRequest); - - assertEquals("application/json;charset=UTF-8", servletResponse.getHeader("Content-Type")); - } - - @Test - public void handleReturnValueString() throws Exception { - List>converters = new ArrayList>(); - converters.add(new ByteArrayHttpMessageConverter()); - converters.add(new StringHttpMessageConverter()); - - processor = new RequestResponseBodyMethodProcessor(converters); - processor.handleReturnValue("Foo", returnTypeString, mavContainer, webRequest); - - assertEquals("text/plain;charset=ISO-8859-1", servletResponse.getHeader("Content-Type")); - assertEquals("Foo", servletResponse.getContentAsString()); - } - @ResponseBody public String handle1(@RequestBody String s, int i) { diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestResponseBodyMethodProcessorTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestResponseBodyMethodProcessorTests.java index 1a4726e5b09..1dc65237739 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestResponseBodyMethodProcessorTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestResponseBodyMethodProcessorTests.java @@ -143,12 +143,25 @@ public class RequestResponseBodyMethodProcessorTests { assertEquals("Foo", servletResponse.getContentAsString()); } + @Test + public void handleReturnValueStringAcceptCharset() throws Exception { + this.servletRequest.addHeader("Accept", "text/plain;charset=UTF-8"); + + List> converters = new ArrayList>(); + converters.add(new ByteArrayHttpMessageConverter()); + converters.add(new StringHttpMessageConverter()); + RequestResponseBodyMethodProcessor processor = new RequestResponseBodyMethodProcessor(converters); + + processor.writeWithMessageConverters("Foo", returnTypeString, webRequest); + + assertEquals("text/plain;charset=UTF-8", servletResponse.getHeader("Content-Type")); + } + public String handle(@RequestBody List list, @RequestBody SimpleBean simpleBean) { return null; } - private static class SimpleBean { private String name;