--- old/src/java.base/share/classes/jdk/internal/loader/BootLoader.java 2020-07-22 12:00:41.312167066 -0700 +++ new/src/java.base/share/classes/jdk/internal/loader/BootLoader.java 2020-07-22 12:00:41.128160140 -0700 @@ -43,6 +43,7 @@ import jdk.internal.access.JavaLangAccess; import jdk.internal.access.SharedSecrets; +import jdk.internal.misc.VM; import jdk.internal.module.Modules; import jdk.internal.module.ServicesCatalog; import jdk.internal.util.StaticProperty; @@ -65,7 +66,22 @@ } // ServiceCatalog for the boot class loader - private static final ServicesCatalog SERVICES_CATALOG = ServicesCatalog.create(); + private static final ServicesCatalog SERVICES_CATALOG; + static { + if (ArchivedData.servicesCatalog != null) { + SERVICES_CATALOG = ArchivedData.servicesCatalog; + } else { + SERVICES_CATALOG = ServicesCatalog.create(); + ArchivedData.servicesCatalog = SERVICES_CATALOG; + } + } + + static class ArchivedData { + static ServicesCatalog servicesCatalog; + static { + VM.initializeFromArchive(ArchivedData.class); + } + } // ClassLoaderValue map for the boot class loader private static final ConcurrentHashMap CLASS_LOADER_VALUE_MAP