On Fri, 27 Oct 2023 17:40:12 GMT, Alan Bateman <al...@openjdk.org> wrote:
>> I reran the script you sent me few days ago and got the expected results >> with the latest changes. >> The checking of the main module name matches between dump time and runtime >> is performed in the VM code. If an archive (even the default CDS archive >> classes.jsa) is created with the -m option, running with just `java >> -version` will disable the optimized module handling. >> >> [0.136s][info ][cds ] _archived_main_module_name m >> [0.136s][info ][cds ] Module m specified during dump time but not >> during runtime >> [0.136s][info ][cds ] Disabling optimized module handling >> [0.136s][info ][cds ] optimized module handling: disabled >> [0.136s][info ][cds ] full module graph: disabled > >> I reran the script you sent me few days ago and got the expected results >> with the latest changes. The checking of the main module name matches >> between dump time and runtime is performed in the VM code. If an archive >> (even the default CDS archive classes.jsa) is created with the -m option, >> running with just `java -version` will disable the optimized module handling. >> >> ``` >> [0.136s][info ][cds ] _archived_main_module_name m >> [0.136s][info ][cds ] Module m specified during dump time but not >> during runtime >> [0.136s][info ][cds ] Disabling optimized module handling >> [0.136s][info ][cds ] optimized module handling: disabled >> [0.136s][info ][cds ] full module graph: disabled >> ``` > > Can you check that ArchivedModuleGraph.archivedModuleGraph is null when > disabled? When I tried it, it wasn't null so ModuleBootstrap has a module > graph containing the modules for m. The `ArchivedModuleGraph.java` wasn't changed. So if `-m` is not specified, the `archivedModuleGraph` is non-null; if `-m` is specified, the `archivedModuleGraph` is null. So running `java -version`, the archivedModuleGraph is non-null, but the module m won't be loaded from the archive. I'm seeing the following log output: `[0.220s][debug][module ] define_module(): creation of module: m, version: null, location: jrt:/m, loader data: 0x00007f201819dd60 for instance a 'jdk/internal/loader/ClassLoaders$AppClassLoader'{0x000000011f010500}, package #: 1` ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/16016#discussion_r1374951369