@@ -79,6 +79,8 @@ void functionInvocationWithStringArgument() {
7979
8080	@ Test 
8181	void  functionWithVarargs () {
82+ 		// static String varargsFunction(String... strings) -> Arrays.toString(strings) 
83+ 
8284		evaluate ("#varargsFunction()" , "[]" , String .class );
8385		evaluate ("#varargsFunction(new String[0])" , "[]" , String .class );
8486		evaluate ("#varargsFunction('a')" , "[a]" , String .class );
@@ -241,6 +243,27 @@ void functionFromMethodHandleWithListConvertedToVarargsArray() {
241243		evaluate ("#formatObjectVarargs('x -> %s %s %s', {'a', 'b', 'c'})" , expected , String .class );
242244	}
243245
246+ 	@ Test   // gh-34109 
247+ 	void  functionViaMethodHandleForStaticMethodThatAcceptsOnlyVarargs () {
248+ 		// #varargsFunctionHandle: static String varargsFunction(String... strings) -> Arrays.toString(strings) 
249+ 
250+ 		evaluate ("#varargsFunctionHandle()" , "[]" , String .class );
251+ 		evaluate ("#varargsFunctionHandle(new String[0])" , "[]" , String .class );
252+ 		evaluate ("#varargsFunctionHandle('a')" , "[a]" , String .class );
253+ 		evaluate ("#varargsFunctionHandle('a','b','c')" , "[a, b, c]" , String .class );
254+ 		evaluate ("#varargsFunctionHandle(new String[]{'a','b','c'})" , "[a, b, c]" , String .class );
255+ 		// Conversion from int to String 
256+ 		evaluate ("#varargsFunctionHandle(25)" , "[25]" , String .class );
257+ 		evaluate ("#varargsFunctionHandle('b',25)" , "[b, 25]" , String .class );
258+ 		evaluate ("#varargsFunctionHandle(new int[]{1, 2, 3})" , "[1, 2, 3]" , String .class );
259+ 		// Strings that contain a comma 
260+ 		evaluate ("#varargsFunctionHandle('a,b')" , "[a,b]" , String .class );
261+ 		evaluate ("#varargsFunctionHandle('a', 'x,y', 'd')" , "[a, x,y, d]" , String .class );
262+ 		// null values 
263+ 		evaluate ("#varargsFunctionHandle(null)" , "[null]" , String .class );
264+ 		evaluate ("#varargsFunctionHandle('a',null,'b')" , "[a, null, b]" , String .class );
265+ 	}
266+ 
244267	@ Test 
245268	void  functionMethodMustBeStatic () throws  Exception  {
246269		SpelExpressionParser  parser  = new  SpelExpressionParser ();
0 commit comments