The implementation of the JVM TI `GetCurrentContendedMonitor` does not match 
the spec. It can sometimes return an incorrect information about the contended 
monitor. Such a behavior does not match the function spec. 
With this update the `GetCurrentContendedMonitor` is returning the monitor only 
when the specified thread is waiting to enter or re-enter the monitor, and the 
monitor is not returned when the specified thread is waiting in the 
`java.lang.Object.wait` to be notified.

The implementation of the JDWP `ThreadReference.CurrentContendedMonitor` 
command is based and depends on this JVMTI function. The command was both 
specified incorrectly and had an incorrect behavior. The fix slightly corrects 
the JDWP spec to make it right (the JDWP implementation has been fixed by the 
JVM TI update). Please, see and review the related CSR and Release-Note.

CSR: [8326024](https://bugs.openjdk.org/browse/JDK-8326024): JVM TI 
GetCurrentContendedMonitor is implemented incorrectly
RN:   [8326038](https://bugs.openjdk.org/browse/JDK-8326038): Release Note: JVM 
TI GetCurrentContendedMonitor is implemented incorrectly

Testing:
 - tested with the mach5 tiers 1-6

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

Commit messages:
 - 8256314: JVM TI GetCurrentContendedMonitor is implemented incorrectly

Changes: https://git.openjdk.org/jdk/pull/17944/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17944&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8256314
  Stats: 46 lines in 5 files changed: 27 ins; 10 del; 9 mod
  Patch: https://git.openjdk.org/jdk/pull/17944.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17944/head:pull/17944

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

Reply via email to