Defer obtaining argument resolver default value

Issue: SPR-17338
This commit is contained in:
dmrachkovskyi 2018-10-04 19:24:16 +03:00 committed by Rossen Stoyanchev
parent 80e7819d6f
commit 983bce125f
1 changed files with 4 additions and 7 deletions

View File

@ -206,8 +206,8 @@ public abstract class AbstractNamedValueArgumentResolver extends HandlerMethodAr
private Mono<Object> 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;
});
}
/**