RFR: 8309399: JVMTI spec needs to clarify when OPAQUE_FRAME is thrown for reasons other than a native method [v6]

Chris Plummer cjplummer at openjdk.org
Tue Jul 15 03:22:40 UTC 2025


On Tue, 15 Jul 2025 03:06:10 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:

>> src/hotspot/share/prims/jvmti.xml line 6233:
>> 
>>> 6231:         <error id="JVMTI_ERROR_OPAQUE_FRAME">
>>> 6232:           The implementation is unable to set the frame locals
>>> 6233:           (e.g. the frame at <code>depth</code> is executing a native method).
>> 
>> The situation here is a little different than other places where you removed the special case for virtual threads. In the other cases above there was already a description of the virtual thread support earlier in the description of the API. However, for SetLocalObject the only description of the virtual thread support is with the JVMTI_ERROR_OPAQUE_FRAME description, which is now removed. I guess to be consistent with earlier APIs, the description of virtual thread support should be added to the API description. This should probably just be done once at the beginning in the "Local Variable" section rather than separately for each API. Or you can re-add the JVMTI_ERROR_OPAQUE_FRAME description here.
>
> @plummercj  Please, let me know if I've addressed your concern or you still want a spec update.

Yes, I think it looks fine. I thought the section you referred to that clarifies virtual threads was only for GetLocalXXX, but I see now it is also for SetLocalXXX.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26111#discussion_r2206196187


More information about the hotspot-dev mailing list