[lworld] RFR: 8374729: [lworld] Enabling CDS crash with UseAltSubstitutabilityMethod [v2]

Ioi Lam iklam at openjdk.org
Sat Jan 17 05:04:51 UTC 2026


On Fri, 16 Jan 2026 21:17:56 GMT, Matias Saavedra Silva <matsaave at openjdk.org> wrote:

>> The alternate substitutability method relies on an injected Java object "acmp_maps" which is currently not being archived and thus leads to crashes attempting to run with a CDS archive. The issue stems from inline klasses being archived and thus loaded at dumptime while the acmp_maps oops is generated in the class file parser, leading this oop to be absent at runtime. 
>> 
>> Additionally, the other injected static field "null_reset" was not being archived either, so both of these fields are properly stored in the archived heap. In the case of CDS/AOT configurations where the heap is not dumped, acmp_maps is regenerated at class loading using a copy of the array stored in metadata.
>> 
>> Tests and APIs are updated to conform to the new output generated by the use of acmp_maps and remove some test cases which target the old substitutability method.
>
> Matias Saavedra Silva has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Coleen and Fred comments

src/hotspot/share/oops/instanceKlass.cpp line 3152:

> 3150:     }
> 3151:     java_mirror()->obj_field_put(_acmp_maps_offset, map_h());
> 3152:   }

Is it necessary to restore `null_reset_value()` as well?

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

PR Review Comment: https://git.openjdk.org/valhalla/pull/1903#discussion_r2700643477


More information about the valhalla-dev mailing list