Browse Source
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-33190pull/33350/head
3 changed files with 44 additions and 14 deletions
Loading…
Reference in new issue