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 1716b33eef59..143235715304 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 @@ -98,6 +98,10 @@ protected Comparator getMappingComparator(final ServerWebExc @Override public Mono getHandlerInternal(ServerWebExchange exchange) { + Object handlerMethod = exchange.getAttributes().get(BEST_MATCHING_HANDLER_ATTRIBUTE); + if (handlerMethod instanceof HandlerMethod) { + return Mono.just((HandlerMethod) handlerMethod); + } exchange.getAttributes().remove(HandlerMapping.PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE); return super.getHandlerInternal(exchange) .doOnTerminate(() -> ProducesRequestCondition.clearMediaTypesAttribute(exchange));