On Mon, 26 Oct 2026 06:34:56 GMT, Alan Bateman <[email protected]> wrote:

> Module$ReflectionData stores the additions to readability, exports/opens and 
> service use when the reflective APIs are used at runtime. Unfortunately a 
> short cut in JDK 9 means it is also being used for the --add-reads command 
> line option and the special read edge to allow automatic modules read all 
> unnamed modules. Not an issue until an AOT cache is created with an automatic 
> module or with the--add-reads CLI option. As the ReflectionData is not in the 
> AOT cache then the production run will have an incomplete module graph.
> 
> The changes proposed means that ReflectionData is added added to creating an 
> automatic module when when handling the --add-reads CLI option. Any runtime 
> uses of Module.addReads will add to RD as before.
> 
> A new test it added to ensure that ReflectionData is "empty" at startup. Ioi 
> has contributed a new test to runtime/cds/appcds/aotCache/ that creates an 
> AOT cache with an automatic module and checks that the expected readability 
> is present in the production run.
> 
> Testing: tier1-3
> 
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK 
> Interim AI Policy](https://openjdk.org/legal/ai).

This pull request has now been integrated.

Changeset: 6dbb8fed
Author:    Alan Bateman <[email protected]>
URL:       
https://git.openjdk.org/jdk/commit/6dbb8fedaba755f6a53cdcb834abaf2f807f6ae4
Stats:     515 lines in 12 files changed: 482 ins; 5 del; 28 mod

8393235: Module$ReflectionData.reads is missing from AOT cache

Co-authored-by: Ioi Lam <[email protected]>
Reviewed-by: iklam, liach

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

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

Reply via email to