ObjectMonitorIterator fails to return the most resent monitor added. It start 
with returning the `nextOM()` ObjectMonitor from the `_head` ObjectMonitor but 
fails to ever return the `_head` ObjectMonitor.
The current implementation can also not handle that the `_head` is nullptr (no 
monitors in the system) and returns a null ObjectMonitorIterator. Which is 
interpreted as `monitor list not supported, too old hotspot VM`.

Changed the iterator to keep return the current monitor (starts with `_head`) 
and decoupled `_head == nullptr` from the question if ObjectMonitorIterator is 
supported. 

Testing:
  * Passes all `serviceability/sa` tests
  * Currently running tier 1-3
  * Currently running GHA

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

Commit messages:
 - 8316417: ObjectMonitorIterator does not return the most recent monitor and 
is incorrect if no monitors exists

Changes: https://git.openjdk.org/jdk/pull/15782/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15782&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8316417
  Stats: 25 lines in 3 files changed: 10 ins; 1 del; 14 mod
  Patch: https://git.openjdk.org/jdk/pull/15782.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15782/head:pull/15782

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

Reply via email to