From 67ab255b7de5909a1d4d5a33dffe41c429163f0f Mon Sep 17 00:00:00 2001 From: dmrachkovskyi Date: Thu, 4 Oct 2018 19:24:16 +0300 Subject: [PATCH] SPR-17338. Do not throw ServerWebInputException when mandatory request parameter is present. --- .../AbstractNamedValueArgumentResolver.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) 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 79565cce4f14..969188086e54 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 @@ -205,23 +205,18 @@ private Object applyConversion(@Nullable Object value, NamedValueInfo namedValue */ 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); - } - else if (namedValueInfo.required && !parameter.isOptional()) { + } else if (namedValueInfo.required && !parameter.isOptional()) { handleMissingValue(namedValueInfo.name, parameter, exchange); } 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; + }); } /**