diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMapping.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMapping.java index a6a7cbf27ddb..1716b33eef59 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMapping.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMapping.java @@ -141,9 +141,12 @@ protected void handleMatch(RequestMappingInfo info, HandlerMethod handlerMethod, exchange.getAttributes().put(URI_TEMPLATE_VARIABLES_ATTRIBUTE, uriVariables); exchange.getAttributes().put(MATRIX_VARIABLES_ATTRIBUTE, matrixVariables); - if (!info.getProducesCondition().getProducibleMediaTypes().isEmpty()) { - Set mediaTypes = info.getProducesCondition().getProducibleMediaTypes(); - exchange.getAttributes().put(PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, mediaTypes); + ProducesRequestCondition producesCondition = info.getProducesCondition(); + if (!producesCondition.isEmpty()) { + Set mediaTypes = producesCondition.getProducibleMediaTypes(); + if (!mediaTypes.isEmpty()) { + exchange.getAttributes().put(PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, mediaTypes); + } } } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.java index 0e9b4dff1c29..3f2a099f0003 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.java @@ -147,9 +147,12 @@ protected void handleMatch(RequestMappingInfo info, String lookupPath, HttpServl extractMatchDetails((PatternsRequestCondition) condition, lookupPath, request); } - if (!info.getProducesCondition().getProducibleMediaTypes().isEmpty()) { - Set mediaTypes = info.getProducesCondition().getProducibleMediaTypes(); - request.setAttribute(PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, mediaTypes); + ProducesRequestCondition producesCondition = info.getProducesCondition(); + if (!producesCondition.isEmpty()) { + Set mediaTypes = producesCondition.getProducibleMediaTypes(); + if (!mediaTypes.isEmpty()) { + request.setAttribute(PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, mediaTypes); + } } }