< prev index next >

src/hotspot/share/cds/cdsHeapVerifier.cpp

Print this page
@@ -149,10 +149,20 @@
  
    if (CDSConfig::is_dumping_aot_linked_classes()) {
      ADD_EXCL("java/lang/Package$VersionInfo",             "NULL_VERSION_INFO");    // D
    }
  
+   if (CDSConfig::is_dumping_dynamic_proxies()) {
+     ADD_EXCL("java/lang/reflect/ProxyGenerator",          "CD_Object_array");      // D
+   }
+ 
+   // These are used by BuiltinClassLoader::negativeLookupCache, etc but seem to be
+   // OK. TODO - we should completely disable the caching unless ArchiveLoaderLookupCache
+   // is enabled
+   ADD_EXCL("java/lang/Boolean",                           "TRUE",                  // E
+                                                           "FALSE");                // E
+ 
  # undef ADD_EXCL
  
    ClassLoaderDataGraph::classes_do(this);
  }
  

@@ -179,15 +189,19 @@
    void do_field(fieldDescriptor* fd) {
      if (fd->field_type() != T_OBJECT) {
        return;
      }
  
-     if (fd->signature()->equals("Ljdk/internal/access/JavaLangAccess;")) {
-       // A few classes have static fields that point to SharedSecrets.getJavaLangAccess().
+     if (fd->signature()->equals("Ljdk/internal/access/JavaLangAccess;") ||
+         fd->signature()->equals("Ljdk/internal/access/JavaLangReflectAccess;")) {
+       // A few classes have static fields that point to SharedSecrets.get???Access().
        // This object carries no state and we can create a new one in the production run.
        return;
      }
+     if (fd->signature()->equals("Ljdk/internal/reflect/ReflectionFactory;")) {
+       return;
+     }
      oop static_obj_field = _ik->java_mirror()->obj_field(fd->offset());
      if (static_obj_field != nullptr) {
        Klass* field_type = static_obj_field->klass();
        if (_exclusions != nullptr) {
          for (const char** p = _exclusions; *p != nullptr; p++) {
< prev index next >