The CDS full module graph is supposed to contain a snapshot of the boot layer, 
which has 3 unnamed modules for the boot, platform and system class loaders. 
Each unnamed module is represented by a `java.lang.Module` Java object and a 
`ModuleEntry` C++ object.

Currently, we archive only the `java.lang.Module` for the platform and system 
loaders. The other 4 objects are dynamically created in the production run 
while executing Java bytecodes during VM bootstrap.

With this PR, we archive all of the above 6 objects when 
`CDSConfig::is_dumping_full_module_graph()` is true.

This is required for 
[JDK-8350550](https://bugs.openjdk.org/browse/JDK-8350550), as we need the 
`java.lang.Module` object for archived classes in the unnamed module of the 
boot loader prior to executing any Java code.

We also archive the `ModuleEntry` objects for the 3 unnamed modules for 
uniformity, as these objects are already archived for named modules.

-------------

Commit messages:
 - 8360555: Archive all unnamed modules in CDS full module graph

Changes: https://git.openjdk.org/jdk/pull/26082/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26082&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8360555
  Stats: 187 lines in 13 files changed: 140 ins; 17 del; 30 mod
  Patch: https://git.openjdk.org/jdk/pull/26082.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26082/head:pull/26082

PR: https://git.openjdk.org/jdk/pull/26082

Reply via email to