Browse Source

Defer obtaining argument resolver default value

Issue: SPR-17338
pull/1998/head
dmrachkovskyi 7 years ago committed by Rossen Stoyanchev
parent
commit
842297699d
  1. 11
      spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractNamedValueArgumentResolver.java

11
spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractNamedValueArgumentResolver.java

@ -205,8 +205,8 @@ public abstract class AbstractNamedValueArgumentResolver extends HandlerMethodAr
private Mono<Object> getDefaultValue(NamedValueInfo namedValueInfo, MethodParameter parameter, private Mono<Object> getDefaultValue(NamedValueInfo namedValueInfo, MethodParameter parameter,
BindingContext bindingContext, Model model, ServerWebExchange exchange) { BindingContext bindingContext, Model model, ServerWebExchange exchange) {
Object value = null; return Mono.fromSupplier(() -> {
try { Object value = null;
if (namedValueInfo.defaultValue != null) { if (namedValueInfo.defaultValue != null) {
value = resolveStringValue(namedValueInfo.defaultValue); value = resolveStringValue(namedValueInfo.defaultValue);
} }
@ -216,11 +216,8 @@ public abstract class AbstractNamedValueArgumentResolver extends HandlerMethodAr
value = handleNullValue(namedValueInfo.name, value, parameter.getNestedParameterType()); value = handleNullValue(namedValueInfo.name, value, parameter.getNestedParameterType());
value = applyConversion(value, namedValueInfo, parameter, bindingContext, exchange); value = applyConversion(value, namedValueInfo, parameter, bindingContext, exchange);
handleResolvedValue(value, namedValueInfo.name, parameter, model, exchange); handleResolvedValue(value, namedValueInfo.name, parameter, model, exchange);
return Mono.justOrEmpty(value); return value;
} });
catch (Throwable ex) {
return Mono.error(ex);
}
} }
/** /**

Loading…
Cancel
Save