@@ -62,24 +62,27 @@ public Object invoke(Method method, Object instance, Object... args) {
6262
6363 int j = args .length - 1 ;
6464 Class <?> parameterTypes [] = method .getParameterTypes ();
65- if (method .isVarArgs () && j >= 0 && args [j ] instanceof Object []) {
66- Object [] convertedArray =
67- convertArray ((Object []) args [j ], parameterTypes [j ].getComponentType ());
68- if (convertedArray != null ) {
69- convertedArgs = Arrays .copyOf (args , args .length );
70- convertedArgs [j ] = convertedArray ;
65+ if (args .length == parameterTypes .length ) {
66+ if (method .isVarArgs () && args [j ] instanceof Object []) {
67+ Object [] convertedArray =
68+ convertArray ((Object []) args [j ], parameterTypes [j ].getComponentType ());
69+ if (convertedArray != null ) {
70+ convertedArgs = Arrays .copyOf (args , args .length );
71+ convertedArgs [j ] = convertedArray ;
72+ }
7173 }
72- }
7374
74- for (int i = 0 ; i < parameterTypes .length ; i ++) {
75- if (args [i ] instanceof JsonValue && parameterTypes [i ] == BaseJsonNode .class ) {
76-
77- if (convertedArgs == null ) {
78- convertedArgs = Arrays .copyOf (args , args .length );
75+ for (int i = 0 ; i < parameterTypes .length ; i ++) {
76+ if (args [i ] instanceof JsonValue && parameterTypes [i ] == BaseJsonNode .class ) {
77+
78+ if (convertedArgs == null ) {
79+ convertedArgs = Arrays .copyOf (args , args .length );
80+ }
81+ convertedArgs [i ] = convertToJsonNode ((JsonValue ) args [i ]);
7982 }
80- convertedArgs [i ] = convertToJsonNode ((JsonValue ) args [i ]);
8183 }
8284 }
85+
8386 if (convertedArgs == null ) {
8487 convertedArgs = args ;
8588 }
0 commit comments