StackFrame.SetValues, StackFrame.GetValues, ThreadReference.PopFrames, and 
ThreadReference.ForceEarlyReturn all need updated language related to 
OPAQUE_FRAME error.

(1) The spec for JVMTI says the following for GetLocalsXXX and SetLocalsXXX

  The implementation is unable to set the frame locals
  (e.g. the frame at depth is executing a native method).

However, the JDWP StackFrame.SetValues and GetValues commands only mention 
OPAQUE_FRAME for SetValues when not called for the topmost frame of a virtual 
thread suspended at an event. I don't think there is anything to prevent 
OPAQUE_FRAME due to the thread being native or some other reason as mentioned 
in the JVMTI spec. The JDWP spec should be updated to reflect this.

(1) The spec for JVMTI says the following for PopFrame and ForceEarlyReturn:

  The implementation is unable to force the current frame to return
  (e.g. current frame is executing a native method).

However, the JDWP ThreadReference.PopFrames, and 
ThreadReference.ForceEarlyReturn commands only mention OPAQUE_FRAME when this 
commands are not called for the topmost frame of a virtual thread suspended at 
an event. I don't think there is anything to prevent OPAQUE_FRAME due to the 
thread being native or some other reason as mentioned in the JVMTI spec. The 
JDWP spec should be updated to reflect this.

(3) Another issue is that INVALID_SLOT is missing in the JDWP spec for 
SetValues, but is there for GetValues. It should be mentioned for both commands.

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

Commit messages:
 - Update spec w.r.t. OPAQUE_FRAME errors

Changes: https://git.openjdk.org/jdk/pull/26336/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26336&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8362304
  Stats: 15 lines in 1 file changed: 6 ins; 2 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/26336.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26336/head:pull/26336

PR: https://git.openjdk.org/jdk/pull/26336

Reply via email to