Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8145070

MethodHandles.publicLookup()'s lookup class is not java.lang.Object

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P3 P3
    • None
    • None
    • core-libs
    • None

      Per javadoc of MethodHandles.publicLookup() https://docs.oracle.com/javase/8/docs/api/java/lang/invoke/MethodHandles.html#publicLookup-- "As a matter of pure convention, the lookup class of this lookup object will be Object."

      import java.lang.invoke.MethodHandles;

      class PublicLookupClass {
         public static void main(String[] args) {
             Class cl = MethodHandles.publicLookup().lookupClass();
             System.out.println(cl);
             System.out.println(cl.getClassLoader());
         }
      }

      Running the above class with jake and jdk9 produces result as follows:

      $ /cygdrive/d/src/jake/build/windows-x86_64-normal-server-release/images/jdk/bin/java PublicLookupClass
      class Unnamed
      java.lang.invoke.MethodHandles$LookupHelper$1@721e0f4f

      $ /cygdrive/d/src/jdk9-dev/build/windows-x86_64-normal-server-release/images/jdk/bin/java PublicLookupClass
      class java.lang.Object
      null


            Unassigned Unassigned
            sundar Sundararajan Athijegannathan
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: