Tracking a bug in the backport, I've discovered that I forget to have a
special case for Object[].clone(),
the backport currently reports that the method is protected
(Object.clone is protected) thus not accessible.
The latest jdk8 binary also have some trouble with array.clone too.
public class JDKBug {
public static void main(String[] args) throws Throwable {
MethodHandles.lookup().findVirtual(Object[].class, "clone",
MethodType.methodType(Object.class));
}
}
Exception in thread "main" java.lang.InternalError
at java.lang.invoke.MethodHandle.viewAsType(MethodHandle.java:1254)
at
java.lang.invoke.MethodHandles$Lookup.restrictReceiver(MethodHandles.java:1194)
at
java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon(MethodHandles.java:1214)
at
java.lang.invoke.MethodHandles$Lookup.getDirectMethod(MethodHandles.java:1198)
at
java.lang.invoke.MethodHandles$Lookup.findVirtual(MethodHandles.java:654)
at fr.umlv.megamorph.JDKBug.main(JDKBug.java:9)
cheers,
Rémi
_______________________________________________
mlvm-dev mailing list
[email protected]
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev