That looks like it's coming from a Java 5/Java 6 compatibility issue. See https://bugzilla.mozilla.org/show_bug.cgi?id=467396
Are you running Java 5? If so switching to Java 6 should fix it. On May 28, 4:17 am, Charles Lowell <[email protected]> wrote: > Hi there, > > I decided to run my application against the lastest version of rhino > in source, and noticed that some of the calls to overloaded java > functions triggered a index out of bounds exception. > > The following testcase works in 1.7R1 > > package foo; > > import org.mozilla.javascript.Function; > import org.mozilla.javascript.ContextFactory; > import org.mozilla.javascript.ContextAction; > import org.mozilla.javascript.Context; > import org.junit.Test; > > public class OverloadTest { > > public void method(String one, Function function) { > System.out.println("string+function"); > } > > public void method(String... strings) { > System.out.println("string[]"); > } > > @Test > public void callOverloadedFunction() { > new ContextFactory().call(new ContextAction() { > public Object run(Context cx) { > > cx.evaluateString(cx.initStandardObjects(),"new > Packages.foo.OverloadTest().method('one', 'two','three')", "<test>", > 1, null); > > cx.evaluateString(cx.initStandardObjects(),"new > Packages.foo.OverloadTest().method('one', function() {})", "<test>", > 1, null); > return null; > } > }); > } > > } > > //outputs: > string[] > string+function > > When I run it against the latest source, it results in the following > > string[] > > java.lang.ArrayIndexOutOfBoundsException: 1 > at org.mozilla.javascript.NativeJavaMethod.preferSignature > (NativeJavaMethod.java:508) > at org.mozilla.javascript.NativeJavaMethod.findFunction > (NativeJavaMethod.java:367) > at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java: > 161) > at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java: > 76) > at org.mozilla.javascript.gen._test__2._c_script_0(<test>:1) > at org.mozilla.javascript.gen._test__2.call(<test>) > at org.mozilla.javascript.ContextFactory.doTopCall > (ContextFactory.java:426) > at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java: > 3060) > at org.mozilla.javascript.gen._test__2.call(<test>) > at org.mozilla.javascript.gen._test__2.exec(<test>) > at org.mozilla.javascript.Context.evaluateString(Context.java:1112) > at foo.OverloadTest$1.run(OverloadTest.java:24) > at org.mozilla.javascript.Context.call(Context.java:522) > at org.mozilla.javascript.ContextFactory.call(ContextFactory.java: > 535) > at foo.OverloadTest.callOverloadedFunction(OverloadTest.java:21) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke > (NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:25) > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall > (FrameworkMethod.java:44) > at org.junit.internal.runners.model.ReflectiveCallable.run > (ReflectiveCallable.java:15) > at org.junit.runners.model.FrameworkMethod.invokeExplosively > (FrameworkMethod.java:41) > at org.junit.internal.runners.statements.InvokeMethod.evaluate > (InvokeMethod.java:20) > at org.junit.internal.runners.statements.RunBefores.evaluate > (RunBefores.java:28) > at org.junit.internal.runners.statements.RunAfters.evaluate > (RunAfters.java:31) > at org.junit.runners.BlockJUnit4ClassRunner.runChild > (BlockJUnit4ClassRunner.java:73) > at org.junit.runners.BlockJUnit4ClassRunner.runChild > (BlockJUnit4ClassRunner.java:46) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41) > at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173) > at org.junit.internal.runners.statements.RunBefores.evaluate > (RunBefores.java:28) > at org.junit.internal.runners.statements.RunAfters.evaluate > (RunAfters.java:31) > at org.junit.runners.ParentRunner.run(ParentRunner.java:220) > > bug? _______________________________________________ dev-tech-js-engine-rhino mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino
