diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RequestPredicates.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RequestPredicates.java index 35ea77a128..668a382661 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RequestPredicates.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RequestPredicates.java @@ -18,6 +18,7 @@ package org.springframework.web.reactive.function.server; import java.net.URI; import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -35,7 +36,6 @@ import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.util.Assert; -import org.springframework.util.StringUtils; import org.springframework.web.reactive.function.BodyExtractor; import org.springframework.web.server.WebSession; import org.springframework.web.util.UriUtils; @@ -157,7 +157,12 @@ public abstract class RequestPredicates { @Override public boolean test(ServerRequest.Headers headers) { List acceptedMediaTypes = headers.accept(); - MediaType.sortBySpecificityAndQuality(acceptedMediaTypes); + if (acceptedMediaTypes.isEmpty()) { + acceptedMediaTypes = Collections.singletonList(MediaType.ALL); + } + else { + MediaType.sortBySpecificityAndQuality(acceptedMediaTypes); + } boolean match = acceptedMediaTypes.stream() .anyMatch(acceptedMediaType -> mediaTypeSet.stream() .anyMatch(acceptedMediaType::isCompatibleWith)); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/RequestPredicatesTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/RequestPredicatesTests.java index 018987bc29..8deb564898 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/RequestPredicatesTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/RequestPredicatesTests.java @@ -140,7 +140,7 @@ public class RequestPredicatesTests { MockServerRequest request = MockServerRequest.builder().header("Accept", json.toString()).build(); assertTrue(predicate.test(request)); - request = MockServerRequest.builder().build(); + request = MockServerRequest.builder().header("Accept", MediaType.TEXT_XML_VALUE).build(); assertFalse(predicate.test(request)); }