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! Just one nit

src/hotspot/share/cds/aotClassLocation.cpp line 717:

> 715:                                                                          
>  ik->name()->utf8_length());
> 716:       if (!zip->has_entry(current, file_name)) {
> 717:         log_warning(cds)("class %s cannot be archived because it was not 
> define from %s as claimed",

Typo: define -> defined

test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/FakeCodeLocation.java 
line 122:

> 120:     // Define a class using Lookup.defineClass(). The ClassFileParser 
> should see "__JVM_DefineClass__"
> 121:     // as the source location, so this class will be excluded, as the 
> location is not supported.
> 122:     static void testWithLookup() throws Exception {

Should this test capture some kind of output or exception?

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

Marked as reviewed by matsaave (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/24046#pullrequestreview-2769566562
PR Review Comment: https://git.openjdk.org/jdk/pull/24046#discussion_r2045329445
PR Review Comment: https://git.openjdk.org/jdk/pull/24046#discussion_r2045356365

Reply via email to