diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractNamedValueArgumentResolver.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractNamedValueArgumentResolver.java index 79565cce4f1..af31694795d 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractNamedValueArgumentResolver.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractNamedValueArgumentResolver.java @@ -206,8 +206,8 @@ public abstract class AbstractNamedValueArgumentResolver extends HandlerMethodAr private Mono getDefaultValue(NamedValueInfo namedValueInfo, MethodParameter parameter, BindingContext bindingContext, Model model, ServerWebExchange exchange) { - Object value = null; - try { + return Mono.fromSupplier(() -> { + Object value = null; if (namedValueInfo.defaultValue != null) { value = resolveStringValue(namedValueInfo.defaultValue); } @@ -217,11 +217,8 @@ public abstract class AbstractNamedValueArgumentResolver extends HandlerMethodAr value = handleNullValue(namedValueInfo.name, value, parameter.getNestedParameterType()); value = applyConversion(value, namedValueInfo, parameter, bindingContext, exchange); handleResolvedValue(value, namedValueInfo.name, parameter, model, exchange); - return Mono.justOrEmpty(value); - } - catch (Throwable ex) { - return Mono.error(ex); - } + return value; + }); } /**