--- old/src/hotspot/share/classfile/systemDictionary.cpp 2020-07-22 12:00:31.207786719 -0700 +++ new/src/hotspot/share/classfile/systemDictionary.cpp 2020-07-22 12:00:31.023779793 -0700 @@ -184,6 +184,16 @@ CHECK); _java_platform_loader = OopHandle(Universe::vm_global(), (oop)result.get_jobject()); + +#if INCLUDE_CDS_JAVA_HEAP + if (UseSharedSpaces && MetaspaceShared::use_full_module_graph()) { + Handle platform_loader(THREAD, java_platform_loader()); + register_loader(platform_loader)->restore_java_platform_loader_from_archive(); + + Handle system_loader(THREAD, java_system_loader()); + register_loader(system_loader)->restore_java_system_loader_from_archive(); + } +#endif } ClassLoaderData* SystemDictionary::register_loader(Handle class_loader, bool create_mirror_cld) { @@ -2121,6 +2131,7 @@ // call. No mirror objects are accessed/restored in the above call. // Mirrors are restored after java.lang.Class is loaded. HeapShared::fixup_mapped_heap_regions(); + CDS_JAVA_HEAP_ONLY(ClassLoaderData::restore_archived_oops_for_null_class_loader_data()); // Initialize the constant pool for the Object_class assert(Object_klass()->is_shared(), "must be");