On Thu, 7 May 2026 09:57:38 GMT, Casper Norrbin <[email protected]> wrote:
> Hi everyone, > > This change removes the remaining mandatory preloading path for > null-restricted instance fields when loading classes from CDS. > [JDK-8380053](https://bugs.openjdk.org/browse/JDK-8380053) already changed > normal class loading so null-restricted field types are no longer loaded just > because the field is null-restriced. Instead, the preloading is speculative > and driven by the `LoadableDescriptor` attribute. The CDS path still had the > older special case in `SystemDictionary::preload_from_null_free_field`, which > could force loading of null-restricted field types. > > This fix removes that CDS-only preload helper and routes non-static field > signatures through the existing `LoadableDescriptor` path instead. This makes > loading follow the same model as in `ClassFileParser::fetch_field_classes()` > with speculative loading. > > Testing: > - Tier 1-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: 7ab2d1e4 Author: Casper Norrbin <[email protected]> Committer: Frederic Parain <[email protected]> URL: https://git.openjdk.org/valhalla/commit/7ab2d1e44f7c9de08967a5a8873dba45508c50b7 Stats: 262 lines in 5 files changed: 189 ins; 13 del; 60 mod 8382584: [lworld] Mandatory pre-loading still present in systemDictionary.cpp Reviewed-by: coleenp, fparain, iklam, heidinga ------------- PR: https://git.openjdk.org/valhalla/pull/2409
