Skip to content

Commit cf0d85a

Browse files
javier-godoypaodb
authored andcommitted
fix: add guard against incorrect number of parameters
1 parent dbb2cb9 commit cf0d85a

File tree

1 file changed

+16
-13
lines changed

1 file changed

+16
-13
lines changed

src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigrationHelper25.java

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)