|
|
|
@ -110,12 +110,9 @@ public class InvocableHandlerMethod extends HandlerMethod { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Configure a reactive registry. This is needed for cases where the response |
|
|
|
* Configure a reactive registry. This is needed for cases where the response is fully |
|
|
|
* is fully handled within the controller in combination with an async void |
|
|
|
* handled within the controller in combination with an async void return value. |
|
|
|
* return value. |
|
|
|
* <p>By default this is a {@link ReactiveAdapterRegistry} with default settings. |
|
|
|
* <p>By default this is an instance of {@link ReactiveAdapterRegistry} with |
|
|
|
|
|
|
|
* default settings. |
|
|
|
|
|
|
|
* @param registry the registry to use |
|
|
|
|
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public void setReactiveAdapterRegistry(ReactiveAdapterRegistry registry) { |
|
|
|
public void setReactiveAdapterRegistry(ReactiveAdapterRegistry registry) { |
|
|
|
this.reactiveAdapterRegistry = registry; |
|
|
|
this.reactiveAdapterRegistry = registry; |
|
|
|
@ -171,10 +168,11 @@ public class InvocableHandlerMethod extends HandlerMethod { |
|
|
|
private Mono<Object[]> getMethodArgumentValues( |
|
|
|
private Mono<Object[]> getMethodArgumentValues( |
|
|
|
ServerWebExchange exchange, BindingContext bindingContext, Object... providedArgs) { |
|
|
|
ServerWebExchange exchange, BindingContext bindingContext, Object... providedArgs) { |
|
|
|
|
|
|
|
|
|
|
|
if (ObjectUtils.isEmpty(getMethodParameters())) { |
|
|
|
MethodParameter[] parameters = getMethodParameters(); |
|
|
|
|
|
|
|
if (ObjectUtils.isEmpty(parameters)) { |
|
|
|
return EMPTY_ARGS; |
|
|
|
return EMPTY_ARGS; |
|
|
|
} |
|
|
|
} |
|
|
|
MethodParameter[] parameters = getMethodParameters(); |
|
|
|
|
|
|
|
List<Mono<Object>> argMonos = new ArrayList<>(parameters.length); |
|
|
|
List<Mono<Object>> argMonos = new ArrayList<>(parameters.length); |
|
|
|
for (MethodParameter parameter : parameters) { |
|
|
|
for (MethodParameter parameter : parameters) { |
|
|
|
parameter.initParameterNameDiscovery(this.parameterNameDiscoverer); |
|
|
|
parameter.initParameterNameDiscovery(this.parameterNameDiscoverer); |
|
|
|
@ -198,7 +196,7 @@ public class InvocableHandlerMethod extends HandlerMethod { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return Mono.zip(argMonos, values -> |
|
|
|
return Mono.zip(argMonos, values -> |
|
|
|
Stream.of(values).map(o -> o != NO_ARG_VALUE ? o : null).toArray()); |
|
|
|
Stream.of(values).map(value -> value != NO_ARG_VALUE ? value : null).toArray()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void logArgumentErrorIfNecessary(ServerWebExchange exchange, MethodParameter parameter, Throwable ex) { |
|
|
|
private void logArgumentErrorIfNecessary(ServerWebExchange exchange, MethodParameter parameter, Throwable ex) { |
|
|
|
|