On Sat, 12 Apr 2025 18:37:18 GMT, Ioi Lam <ik...@openjdk.org> wrote: >> During an application's training run, it's possible to inject classes into >> the built-in platform/app class loaders with reflection calls. >> >> - Before [JDK-8348426](https://bugs.openjdk.org/browse/JDK-8348426), only >> the names of these classes were recorded in the AOT config file. When the >> AOT cache is generated, these classes are automatically filtered out. >> - Since [JDK-8348426](https://bugs.openjdk.org/browse/JDK-8348426), these >> classes are stored as parsed InstanceKlasses in the AOT config file, and >> will be transferred into the AOT cache. This new behavior may cause some >> applications to fail, as they may inject bytecodes that have environment >> dependencies. >> >> For safety, this PR filters out such injected classes from the AOT config >> file. > > Ioi Lam has updated the pull request with a new target base due to a merge or > a rebase. The incremental webrev excludes the unrelated changes brought in by > the merge/rebase. The pull request contains two additional commits since the > last revision: > > - Merge branch 'master' into > 8352001-exclude-injected-classes-from-builtin-loaders > - 8352001: AOT cache should not contain classes injected into built-in class > loaders
Looks good overall. I have a question in classLoaderExt.cpp. src/hotspot/share/classfile/classLoaderExt.cpp line 105: > 103: > 104: if (CDSConfig::is_dumping_preimage_static_archive() || > CDSConfig::is_dumping_dynamic_archive()) { > 105: > AOTClassLocationConfig::dumptime()->check_invalid_classpath_index(classpath_index, > result); In case the `classpath_index` is invalid, I don't think we should call `AOTClassLocationConfig::dumptime_update_max_used_index()`. Maybe the `check_invalid_classpath_index()` function should return a bool and have `ClassLoaderExt::record_result()` update the classpath index and max used index. ------------- PR Review: https://git.openjdk.org/jdk/pull/24046#pullrequestreview-2769994967 PR Review Comment: https://git.openjdk.org/jdk/pull/24046#discussion_r2045596814