Bug in MethodHandles.insertArguments
Rémi Forax
forax at univ-mlv.fr
Fri May 14 03:07:03 PDT 2010
Hi all,
a rogue path in my implementation allows to bound null to a virtual method.
Instead of a NPE, I got an InternalError :(
import java.dyn.MethodHandle;
import java.dyn.MethodHandles;
import java.dyn.MethodType;
public class InsertArgumentsBug {
public int f(int i) {
return i;
}
public static void main(String[] args) {
MethodHandle mh =
MethodHandles.lookup().findVirtual(InsertArgumentsBug.class, "f",
MethodType.methodType(int.class, int.class));
mh = MethodHandles.insertArguments(mh, 0, (Object)null);
}
}
Exception in thread "main" java.lang.InternalError
at sun.dyn.MethodHandleNatives.init(Native Method)
at sun.dyn.BoundMethodHandle.initTarget(BoundMethodHandle.java:96)
at sun.dyn.BoundMethodHandle.<init>(BoundMethodHandle.java:90)
at sun.dyn.BoundMethodHandle.<init>(BoundMethodHandle.java:75)
at sun.dyn.MethodHandleImpl.bindReceiver(MethodHandleImpl.java:441)
at java.dyn.MethodHandles.insertArguments(MethodHandles.java:994)
at InsertArgumentsBug.main(InsertArgumentsBug.java:13)
cheers,
Rémi
More information about the mlvm-dev
mailing list