Public lookup and unreflect cause a NPE
Rémi Forax
forax at univ-mlv.fr
Thu May 7 07:57:24 PDT 2009
Hi all,
The current implementation (the one of the tl repository) generates a NPE
Method method = ...
MethodHandle methodHandle =
MethodHandles.Lookup.PUBLIC_LOOKUP.unreflect(method);
cause a NPE:
Exception in thread "main" java.lang.NullPointerException
at sun.dyn.DirectMethodHandle.<init>(DirectMethodHandle.java:49)
at sun.dyn.MethodHandleImpl.findMethod(MethodHandleImpl.java:156)
at java.dyn.MethodHandles.unreflectImpl(MethodHandles.java:431)
at java.dyn.MethodHandles$Lookup.unreflect(MethodHandles.java:307)
at fr.umlv.indy.visitor.AbstractVisitor.<init>(AbstractVisitor.java:33)
at fr.umlv.indy.visitor.test.Main$1.<init>(Main.java:15)
at fr.umlv.indy.visitor.test.Main.main(Main.java:15)
I don't fully understand why this line is needed but
it can be easily solve by using == instead of equals (on Class ??)
if (lookupClass.equals(Access.class)) lookupClass = null;
is replaced by:
if (lookupClass==Access.class) lookupClass = null;
Rémi
More information about the mlvm-dev
mailing list