{"record":{"id":"dde8bf1caeb1daaf","repo":"jruby/jruby","slug":"argument-count-mismatch-for-method-signature","errorCode":null,"errorMessage":"argument count mismatch for method signature {}","messagePattern":"argument count mismatch for method signature (.+?)","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"core/src/main/java/org/jruby/java/proxies/JavaProxy.java","lineNumber":433,"sourceCode":"        final int argsLen = argc - 2;\n\n        checkArgSizeMismatch(runtime, argsLen, argTypesAry);\n\n        Class[] argTypesClasses = (Class[]) argTypesAry.toArray(new Class[argsLen]);\n\n        Object[] javaArgs = new Object[argsLen];\n        for ( int i = 0; i < argsLen; i++ ) {\n            javaArgs[i] = args[i + 2].toJava( argTypesClasses[i] );\n        }\n\n        JavaMethod method = new JavaMethod(runtime, getMethod(context, name, argTypesClasses));\n        return method.invokeDirect(context, getObject(), javaArgs);\n    }\n\n    private static void checkArgSizeMismatch(final Ruby runtime, final int expected, final RubyArray argTypes) {\n        if ( argTypes.size() != expected ) {\n            Class[] argTypesClasses = (Class[]) argTypes.toArray(new Class[argTypes.size()]);\n            throw JavaMethod.newArgSizeMismatchError(runtime, argTypesClasses);\n        }\n    }\n\n    @JRubyMethod\n    public IRubyObject java_method(ThreadContext context, IRubyObject rubyName) {\n        String name = rubyName.asJavaString();\n\n        return getRubyMethod(context, name);\n    }\n\n    @JRubyMethod\n    public IRubyObject java_method(ThreadContext context, IRubyObject rubyName, IRubyObject argTypes) {\n        String name = rubyName.asJavaString();\n        RubyArray argTypesAry = argTypes.convertToArray();\n        Class[] argTypesClasses = (Class[]) argTypesAry.toArray(new Class[argTypesAry.size()]);\n\n        return getRubyMethod(context, name, argTypesClasses);\n    }","sourceCodeStart":415,"sourceCodeEnd":451,"githubUrl":"https://github.com/jruby/jruby/blob/fb650c13e02b5a600fa66384655069d5ec30c362/core/src/main/java/org/jruby/java/proxies/JavaProxy.java#L415-L451","documentation":"Error \"argument count mismatch for method signature {}\" thrown in jruby/jruby.","triggerScenarios":"Thrown at core/src/main/java/org/jruby/java/proxies/JavaProxy.java:433 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["The argument count does not match the Java method signature. Supply exactly the number of parameters the target method declares."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fb650c13e02b5a600fa66384655069d5ec30c362","analyzedAt":"2026-08-23T07:18:57.479Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}