On Mon, 22 Mar 2021 19:40:19 GMT, Aleksei Voitylov <avoity...@openjdk.org> wrote:
> With CDS and G1, test api/java_lang/ModuleLayer/Boot.html fails in JDK 16. > > After JDK-8253081 with CDS enabled two instances of empty layer appear in the > runtime. One comes from default initialization of > java/lang/ModuleLayer.EMPTY_LAYER, another one comes from CDS archive and is > returned by ModuleLayer.boot().parents().get(0). The fix makes > java/lang/ModuleLayer.EMPTY_LAYER a singleton with both CDS on and off, > similar to java/lang/module/Configuration.EMPTY_CONFIGURATION. > > Testing: JCK 16, jtreg (including newly added test), pre-submit GitHub > actions tests. Marked as reviewed by alanb (Reviewer). src/java.base/share/classes/java/lang/ModuleLayer.java line 156: > 154: > 155: static { > 156: // Initialize EMPTY_LAYER from the archive. Style wide you can drop L154 and L156 and the comment on EMPTY_LAYER will cover its initialization too. Otherwise looks okay but the more archiving we add does make it harder to change this code. ------------- PR: https://git.openjdk.java.net/jdk/pull/3131