Skip to content

Commit 8422976

Browse files
DmytoMrachkovskyirstoyanchev
authored andcommitted
Defer obtaining argument resolver default value
Issue: SPR-17338
1 parent d90d65b commit 8422976

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

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

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,8 @@ private Object applyConversion(@Nullable Object value, NamedValueInfo namedValue
205205
private Mono<Object> getDefaultValue(NamedValueInfo namedValueInfo, MethodParameter parameter,
206206
BindingContext bindingContext, Model model, ServerWebExchange exchange) {
207207

208-
Object value = null;
209-
try {
208+
return Mono.fromSupplier(() -> {
209+
Object value = null;
210210
if (namedValueInfo.defaultValue != null) {
211211
value = resolveStringValue(namedValueInfo.defaultValue);
212212
}
@@ -216,11 +216,8 @@ else if (namedValueInfo.required && !parameter.isOptional()) {
216216
value = handleNullValue(namedValueInfo.name, value, parameter.getNestedParameterType());
217217
value = applyConversion(value, namedValueInfo, parameter, bindingContext, exchange);
218218
handleResolvedValue(value, namedValueInfo.name, parameter, model, exchange);
219-
return Mono.justOrEmpty(value);
220-
}
221-
catch (Throwable ex) {
222-
return Mono.error(ex);
223-
}
219+
return value;
220+
});
224221
}
225222

226223
/**

0 commit comments

Comments
 (0)