On Sat, 24 Oct 2026 01:19:39 GMT, Serguei Spitsyn <[email protected]> wrote:

>> This is a spec and implementation update for JVMTI `GetLocalObject` and 
>> `GetLocalInstance` functions related to getting the `this` object during 
>> value object construction. Current implementation is to return a snapshot of 
>>  the `this` object. This update changes it to reject JVMTI `GetLocalObject` 
>> and `GetLocalInstance` functions with the error code 
>> `JVMTI_ERROR_OPAQUE_FRAME`.
>> 
>> TBD: Will create a related CSR.
>> 
>> Testing:
>>  - Run the impacted test before and after the fix:
>>    
>> `test/hotspot/jtreg/serviceability/jvmti/valhalla/GetCtorLocal/ValueGetCtorLocal.java`
>>  - TBD: Run mach5 tiers 1-6
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Serguei Spitsyn has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Restore preview problem list to upstream version

src/hotspot/share/prims/jvmtiImpl.cpp line 624:

> 622:             bool is_ctor = _jvf->method()->is_object_constructor();
> 623:             if (is_ctor && _index == 0 && 
> _jvf->method()->method_holder()->has_strict_instance_fields_in_hierarchy()) {
> 624:               _result = JVMTI_ERROR_OPAQUE_FRAME; // no support for THIS 
> value object during construction

I think you'll need a lot more test cases to help see if a stack walk is 
required here. I'm thinking about invoking an instance method from a 
constructor after strict fields have been set and after super(). Also thinking 
about cases where the strict fields are in a super class or subclass.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/33526#discussion_r4386199493

Reply via email to