mirror of
https://github.com/spring-projects/spring-framework
synced 2026-06-08 17:33:33 +00:00
a0f5c16627
Prior to this commit, the Spring Expression Language (SpEL) could not invoke a varargs MethodHandle function with zero variable arguments, even though the variable arguments are not required. Attempting to do so resulted in a SpelEvaluationException with an INCORRECT_NUMBER_OF_ARGUMENTS_TO_FUNCTION message. This commit addresses this by updating the executeFunctionViaMethodHandle(...) method in FunctionReference so that it properly checks the required number of arguments for both varargs and non-varargs MethodHandle invocations. This commit also improves the error message for varargs invocations with too few arguments. For example, if the MethodHandle requires at least 1 argument plus a variable number of additional arguments and 0 arguments were supplied, the error message now states: "Incorrect number of arguments for function 'myFunc': 0 supplied but function takes 1 or more" Instead of: "Incorrect number of arguments for function 'myFunc': 0 supplied but function takes 2" Closes gh-33190