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).

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

Commit messages:
 - Update
 - Update
 - Merge branch 'master' into JDK-8393235
 - Merge branch 'master' into JDK-8393235
 - Test update for add-reads from Ioi
 - Merge branch 'master' into RD.reads
 - Add Ioi's test
 - Merge branch 'master' into RD.reads
 - Add test and assert to ensure that RD is empty
 - Merge branch 'master' into JDK-8393235
 - ... and 1 more: https://git.openjdk.org/jdk/compare/64e5768a...adbb5cdf

Changes: https://git.openjdk.org/jdk/pull/33559/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=33559&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8393235
  Stats: 514 lines in 12 files changed: 481 ins; 5 del; 28 mod
  Patch: https://git.openjdk.org/jdk/pull/33559.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/33559/head:pull/33559

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

Reply via email to