< prev index next >

src/hotspot/share/ci/ciField.cpp

Print this page

        

@@ -220,13 +220,14 @@
     // Never trust strangely unstable finals:  System.out, etc.
     return false;
   // Even if general trusting is disabled, trust system-built closures in these packages.
   if (holder->is_in_package("java/lang/invoke") || holder->is_in_package("sun/invoke"))
     return true;
-  // Trust VM unsafe anonymous classes. They are private API (jdk.internal.misc.Unsafe)
-  // and can't be serialized, so there is no hacking of finals going on with them.
-  if (holder->is_unsafe_anonymous())
+  // Trust VM nonfindable and unsafe anonymous classes. They are created via Lookup.defineClass or
+  // the private API (jdk.internal.misc.Unsafe) and can't be serialized, so there is no hacking
+  // of finals going on with them.
+  if (holder->is_nonfindable() || holder->is_unsafe_anonymous())
     return true;
   // Trust final fields in all boxed classes
   if (holder->is_box_klass())
     return true;
   // Trust final fields in String
< prev index next >