< prev index next >

test/jdk/jdk/jfr/event/runtime/TestClasses.java

Print this page




  73 
  74         protected static class TestClassProtectedStaticInner {
  75         }
  76     }
  77 
  78     public static class TestClassPublicStatic {
  79         public static class TestClassPublicStaticInner {
  80         }
  81     }
  82 
  83 }
  84 
  85 class TestClass {
  86     static {
  87         // force creation of hidden class (for the lambda form)
  88         Runnable r = () -> System.out.println("Hello");
  89         r.run();
  90     }
  91 
  92     public static void createNonFindableClasses(byte[] klassbuf) throws Throwable {
  93         // Create a weak hidden class and an array of weak hidden classes.
  94         Lookup lookup = MethodHandles.lookup();
  95         Class<?> clh = lookup.defineHiddenClass(klassbuf, false, NESTMATE, WEAK).lookupClass();
  96         Class<?> arrayOfHidden = Array.newInstance(clh, 10).getClass(); // HAS ISSUES?
  97 
  98         // Create an Unsafe anonymous class and an array of unsafe anonymous classes.
  99         Unsafe unsafe = Unsafe.getUnsafe();
 100         Class<?> clu = unsafe.defineAnonymousClass(TestClass.class, klassbuf, new Object[0]);
 101         final Class<?> arrayOfUAC = Array.newInstance(clu, 15).getClass();
 102     }
 103 }


  73 
  74         protected static class TestClassProtectedStaticInner {
  75         }
  76     }
  77 
  78     public static class TestClassPublicStatic {
  79         public static class TestClassPublicStaticInner {
  80         }
  81     }
  82 
  83 }
  84 
  85 class TestClass {
  86     static {
  87         // force creation of hidden class (for the lambda form)
  88         Runnable r = () -> System.out.println("Hello");
  89         r.run();
  90     }
  91 
  92     public static void createNonFindableClasses(byte[] klassbuf) throws Throwable {
  93         // Create a hidden class and an array of hidden classes.
  94         Lookup lookup = MethodHandles.lookup();
  95         Class<?> clh = lookup.defineHiddenClass(klassbuf, false, NESTMATE).lookupClass();
  96         Class<?> arrayOfHidden = Array.newInstance(clh, 10).getClass(); // HAS ISSUES?
  97 
  98         // Create an Unsafe anonymous class and an array of unsafe anonymous classes.
  99         Unsafe unsafe = Unsafe.getUnsafe();
 100         Class<?> clu = unsafe.defineAnonymousClass(TestClass.class, klassbuf, new Object[0]);
 101         final Class<?> arrayOfUAC = Array.newInstance(clu, 15).getClass();
 102     }
 103 }
< prev index next >