diff --git a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/condition/ProducesRequestCondition.java b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/condition/ProducesRequestCondition.java index 0e46ffe4e1e..78cee038273 100644 --- a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/condition/ProducesRequestCondition.java +++ b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/condition/ProducesRequestCondition.java @@ -173,7 +173,7 @@ public final class ProducesRequestCondition extends AbstractRequestCondition *
  • Sort 'Accept' header media types by quality value via * {@link MediaType#sortByQualityValue(List)} and iterate the list. - *
  • Get the lowest index of matching media types from each "produces" + *
  • Get the first index of matching media types in each "produces" * condition first matching with {@link MediaType#equals(Object)} and * then with {@link MediaType#includes(MediaType)}. *
  • If a lower index is found, the condition at that index wins. @@ -220,7 +220,9 @@ public final class ProducesRequestCondition extends AbstractRequestCondition 0); } + // SPR-9021 + + @Test + public void compareToMediaTypeAllWithParameter() { + MockHttpServletRequest request = new MockHttpServletRequest(); + request.addHeader("Accept", "*/*;q=0.9"); + + ProducesRequestCondition condition1 = new ProducesRequestCondition(); + ProducesRequestCondition condition2 = new ProducesRequestCondition("application/json"); + + assertTrue(condition1.compareTo(condition2, request) < 0); + assertTrue(condition2.compareTo(condition1, request) > 0); + } + @Test public void compareToEqualMatch() { MockHttpServletRequest request = new MockHttpServletRequest();