diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/InvocableHandlerMethod.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/InvocableHandlerMethod.java index a7409e6f11..b9430fdb9a 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/InvocableHandlerMethod.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/InvocableHandlerMethod.java @@ -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]; diff --git a/spring-web/src/main/java/org/springframework/web/method/support/InvocableHandlerMethod.java b/spring-web/src/main/java/org/springframework/web/method/support/InvocableHandlerMethod.java index 37eef7ada0..e5c71b44f3 100644 --- a/spring-web/src/main/java/org/springframework/web/method/support/InvocableHandlerMethod.java +++ b/spring-web/src/main/java/org/springframework/web/method/support/InvocableHandlerMethod.java @@ -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]; diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/InvocableHandlerMethod.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/InvocableHandlerMethod.java index c108c13cfd..4c9052ecda 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/InvocableHandlerMethod.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/InvocableHandlerMethod.java @@ -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. - *
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. + *
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