On Thu, 21 Sep 2023 06:21:25 GMT, Axel Boldt-Christmas <[email protected]>
wrote:
>> 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
>> * Passed tier 1-5
>> * Passed GHA
>
> Axel Boldt-Christmas has updated the pull request incrementally with one
> additional commit since the last revision:
>
> Update copyright year
src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/ui/MonitorCacheDumpPanel.java
line 101:
> 99: tty.println("You need 1.4.0_04, 1.4.1_01 or later versions");
> 100: return;
> 101: }
This code is called when you choose the hsdb "Tools -> Monitor Cache Dump" menu
item. Have you tried doing that? I tried running it against a clhsdb process,
and currently it doesn't seem to show any monitors. Does it show one after your
fix?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15782#discussion_r1335978134