Both examples were run using Java 1.6 with Sun's VM. On Jun 4, 9:17 pm, Rapha <[email protected]> wrote: > That looks like it's coming from a Java 5/Java 6 compatibility issue. > Seehttps://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
