diff --git a/src/main/java/com/dashjoin/jsonata/utils/Signature.java b/src/main/java/com/dashjoin/jsonata/utils/Signature.java index 29e50f5..efd286c 100644 --- a/src/main/java/com/dashjoin/jsonata/utils/Signature.java +++ b/src/main/java/com/dashjoin/jsonata/utils/Signature.java @@ -391,6 +391,7 @@ public Object validate(Object _args, Object context) { } } } + index++; } return validatedArgs; } diff --git a/src/test/java/com/dashjoin/jsonata/SignatureTest.java b/src/test/java/com/dashjoin/jsonata/SignatureTest.java index a872508..12454a6 100644 --- a/src/test/java/com/dashjoin/jsonata/SignatureTest.java +++ b/src/test/java/com/dashjoin/jsonata/SignatureTest.java @@ -55,4 +55,17 @@ public Object call(Object input, List args) throws Throwable { }, "")); Assertions.assertEquals(6, expression.evaluate(null)); } + + @Test + public void testVarArgMany(){ + Jsonata expr = jsonata("$customArgs('test',[1,2,3,4],3)"); + expr.registerFunction("customArgs", new JFunction(new JFunctionCallable() { + + @Override + public Object call(Object input, @SuppressWarnings("rawtypes") List args) throws Throwable { + return args.toString(); + } + }, "n:s>")); + Assertions.assertEquals("[test, [1, 2, 3, 4], 3]", expr.evaluate(null)); + } }