Bug in MethodHandles.convertArguments
Rémi Forax
forax at univ-mlv.fr
Mon May 10 12:11:43 PDT 2010
For me it's a new bug.
I have checked with jdk7 latest binaries
I will check with the mlvm repository sources when I will be at my
office with a fast connection.
public class ConvertBug {
public static Object foo(Object o1, Object o2) {
return null;
}
public static void main(String[] args) {
MethodHandle mh =
MethodHandles.lookup().findStatic(ConvertBug.class, "foo",
MethodType.methodType( Object.class, Object.class, Object.class));
mh = MethodHandles.convertArguments(mh,
MethodType.methodType(Object.class, int.class, Object.class));
System.out.println("print mh "+mh);
}
}
Exception in thread "main" java.lang.IllegalArgumentException:
mismatched parameter count
at sun.dyn.MemberName.newIllegalArgumentException(MemberName.java:409)
at sun.dyn.MethodHandleImpl.convertArguments(MethodHandleImpl.java:654)
at sun.dyn.ToGeneric.<init>(ToGeneric.java:102)
at sun.dyn.ToGeneric.of(ToGeneric.java:257)
at sun.dyn.ToGeneric.make(ToGeneric.java:249)
at sun.dyn.MethodHandleImpl.convertArguments(MethodHandleImpl.java:671)
at java.dyn.MethodHandles.convertArguments(MethodHandles.java:811)
at ConvertBug.main(ConvertBug.java:15)
and I don't see any workaround :(
Rémi
More information about the mlvm-dev
mailing list