Hi,
I've noticed some oddities with b130 MethodHandles (this is x64 Ubuntu):
private void foo() {
System.out.println("Foo!");
}
private void run(String[] args) {
MethodHandle mh;
MethodType desc = MethodType.methodType(void.class);
try {
mh = MethodHandles.lookup().findVirtual(getClass(), "foo",
desc);
} catch (NoAccessException e) {
throw (AssertionError)new AssertionError().initCause(e);
}
try {
mh.invokeExact();
} catch (Throwable e) {
e.printStackTrace();
}
}
Compiling with javac works fine, but on running:
bje@bje-desktop:~/projects/java_scratch/src$ java
-XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles
-XX:+EnableInvokeDynamic com/db/java7/test/MHTest
java.dyn.WrongMethodTypeException: ()V cannot be called as ()V
at com.db.java7.test.MHTest.run(MHTest.java:33)
at com.db.java7.test.MHTest.main(MHTest.java:42)
bje@bje-desktop:~/projects/java_scratch/src$ java -version
java version "1.7.0-ea"
Java(TM) SE Runtime Environment (build 1.7.0-ea-b130)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b02, mixed mode)
Any ideas?
Thanks,
Ben
_______________________________________________
mlvm-dev mailing list
[email protected]
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev