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
