Consistent parameter retrieval across InvocableHandlerMethod variants
See gh-22900
This commit is contained in:
parent
3f85a7db1b
commit
c841b62bb0
|
@ -127,10 +127,11 @@ public class InvocableHandlerMethod extends HandlerMethod {
|
|||
* @since 5.1.2
|
||||
*/
|
||||
protected Object[] getMethodArgumentValues(Message<?> message, Object... providedArgs) throws Exception {
|
||||
if (ObjectUtils.isEmpty(getMethodParameters())) {
|
||||
MethodParameter[] parameters = getMethodParameters();
|
||||
if (ObjectUtils.isEmpty(parameters)) {
|
||||
return EMPTY_ARGS;
|
||||
}
|
||||
MethodParameter[] parameters = getMethodParameters();
|
||||
|
||||
Object[] args = new Object[parameters.length];
|
||||
for (int i = 0; i < parameters.length; i++) {
|
||||
MethodParameter parameter = parameters[i];
|
||||
|
|
|
@ -147,10 +147,11 @@ public class InvocableHandlerMethod extends HandlerMethod {
|
|||
protected Object[] getMethodArgumentValues(NativeWebRequest request, @Nullable ModelAndViewContainer mavContainer,
|
||||
Object... providedArgs) throws Exception {
|
||||
|
||||
if (ObjectUtils.isEmpty(getMethodParameters())) {
|
||||
MethodParameter[] parameters = getMethodParameters();
|
||||
if (ObjectUtils.isEmpty(parameters)) {
|
||||
return EMPTY_ARGS;
|
||||
}
|
||||
MethodParameter[] parameters = getMethodParameters();
|
||||
|
||||
Object[] args = new Object[parameters.length];
|
||||
for (int i = 0; i < parameters.length; i++) {
|
||||
MethodParameter parameter = parameters[i];
|
||||
|
|
|
@ -110,12 +110,9 @@ public class InvocableHandlerMethod extends HandlerMethod {
|
|||
}
|
||||
|
||||
/**
|
||||
* Configure a reactive registry. This is needed for cases where the response
|
||||
* is fully handled within the controller in combination with an async void
|
||||
* return value.
|
||||
* <p>By default this is an instance of {@link ReactiveAdapterRegistry} with
|
||||
* default settings.
|
||||
* @param registry the registry to use
|
||||
* Configure a reactive registry. This is needed for cases where the response is fully
|
||||
* handled within the controller in combination with an async void return value.
|
||||
* <p>By default this is a {@link ReactiveAdapterRegistry} with default settings.
|
||||
*/
|
||||
public void setReactiveAdapterRegistry(ReactiveAdapterRegistry registry) {
|
||||
this.reactiveAdapterRegistry = registry;
|
||||
|
@ -171,10 +168,11 @@ public class InvocableHandlerMethod extends HandlerMethod {
|
|||
private Mono<Object[]> getMethodArgumentValues(
|
||||
ServerWebExchange exchange, BindingContext bindingContext, Object... providedArgs) {
|
||||
|
||||
if (ObjectUtils.isEmpty(getMethodParameters())) {
|
||||
MethodParameter[] parameters = getMethodParameters();
|
||||
if (ObjectUtils.isEmpty(parameters)) {
|
||||
return EMPTY_ARGS;
|
||||
}
|
||||
MethodParameter[] parameters = getMethodParameters();
|
||||
|
||||
List<Mono<Object>> argMonos = new ArrayList<>(parameters.length);
|
||||
for (MethodParameter parameter : parameters) {
|
||||
parameter.initParameterNameDiscovery(this.parameterNameDiscoverer);
|
||||
|
@ -198,7 +196,7 @@ public class InvocableHandlerMethod extends HandlerMethod {
|
|||
}
|
||||
}
|
||||
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) {
|
||||
|
|
Loading…
Reference in New Issue