[10] RFR: 8186018: SA: Monitor Cache Dump in HSDB does not work

Yasumasa Suenaga yasuenag at gmail.com
Wed Aug 9 06:55:08 UTC 2017


Hi David,

I uploaded new webrev:

  http://cr.openjdk.java.net/~ysuenaga/JDK-8186018/webrev.01/

2017-08-09 15:32 GMT+09:00 David Holmes <david.holmes at oracle.com>:
> Hi Yasumasa,
>
> On 9/08/2017 3:54 PM, Yasumasa Suenaga wrote:
>>
>> Hi all,
>>
>> I tried to check Monitor Cache Dump in HSDB, but it hangs and OOME
>> occurred.
>>
>> How to reproduce:
>>
>>    1. Run JShell
>>    2. Attach HSDB to JShell
>>       $ jhsdb hsdb --pid <PID>
>>    3. Select "Monitor Cache Dump" in "Tools" menu.
>>
>> ObjectSynchronizer$ObjectMonitorIterator switches monitor block list
>> when index == 0 at next(). However next() switches blockAddr only.
>> We should also switch "block".
>>
>> I uloaded webrev for this issue. Could you review it?
>>
>>    http://cr.openjdk.java.net/~ysuenaga/JDK-8186018/webrev.00/
>
>
> The fix looks good. Can you please add a comment inserted at L112:
>
> // advance to next block
>
> Also update copyright year.

Fixed them.


> Not sure if we need to do anything explicit about calling next() when we've
> reached the end of the last block? Current code will throw NPE at L116, new
> code will either throw NPE at L116 or perhaps at L113 if ObjectMonitor
> constructor doesn't take null.

According to JavaDoc [1], next() throws NoSuchElementException if the
iterator has no more elements.
So I modified to throw this exception if blockAddr is null.


Thanks,

Yasumasa


[1] https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html#next--


> Thanks,
> David
>
>
>> I cannot access JPRT. So I need a sponsor.
>>
>>
>> Thanks,
>>
>> Yasumasa
>>
>


More information about the serviceability-dev mailing list