Actually, this also fails for non-primitive arrays. Changing every "int" to "String" will give
java.dyn.WrongMethodTypeException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String; So, it seems like the problem is even more generic... (Alternatively, I'm doing something wrong...) Attila. On 2009.08.17., at 22:06, Attila Szegedi wrote: > Hi folks, > > I have this program that doesn't work with mlvm build from August 4: > > --------------------- > import java.dyn.MethodHandle; > import java.dyn.MethodHandles; > import java.dyn.MethodType; > > public class TestCollectArguments > { > public static void main(String[] args) throws Throwable > { > MethodHandle xv = MethodHandles.publicLookup().findVirtual( > TestCollectArguments.class, "xv", > MethodType.make(int.class, > int.class, int[].class)); > // This works - exact invocation > System.out.println(MethodHandles.invoke(xv, new > TestCollectArguments(), > 1, new int[] { 2, 3 })); > MethodHandle collecting = MethodHandles.collectArguments(xv, > MethodType.make(int.class, Object.class, int.class, > int.class, > int.class)); > // This fails - collecting arguments > System.out.println(MethodHandles.invoke(collecting, > new TestCollectArguments(), 1, 2, 3)); > } > > public int xv(int y, int... z) > { > for (int zz : z) > { > y += zz; > } > return y; > } > } > --------------------- > > It throws: > > Exception in thread "main" java.dyn.WrongMethodTypeException: > [Ljava.lang.Object; cannot be cast to [I > at sun.dyn.FromGeneric$A3.invoke_I3(FromGeneric.java:543) > at sun.dyn.FilterGeneric$F4.invoke_C2(FilterGeneric.java:631) > at sun.dyn.ToGeneric$A4.target(ToGeneric.java:746) > at sun.dyn.ToGeneric$A4.targetA4(ToGeneric.java:750) > at sun.dyn.ToGeneric$A4.invoke_I(ToGeneric.java:766) > at sun.dyn.FromGeneric$A5.invoke_I5(FromGeneric.java:567) > at java.dyn.MethodHandles.invoke(MethodHandles.java:638) > at TestCollectArguments.main(TestCollectArguments.java:21) > > Seems it has troubles collecting arguments for an int[] vararg. > > Attila. _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev