RFR: JDK-8293156: Dcmd VM.classloaders fails to print the full hierarchy [v2]
David Holmes
dholmes at openjdk.org
Wed Sep 21 02:35:44 UTC 2022
On Tue, 20 Sep 2022 05:37:44 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:
>> Fixes a bug in the `VM.classloaders` jcmd that causes class loaders to be omitted from the output if a parent class loader never loaded any class and therefore had no associated DCmd.
>>
>> The fix changes the command to not rely on the existence of a CLD structure for the loader; instead, all information (loader class name, loader name, etc) is pulled via the loader oop, which has to be always there unless its the bootstrap loader.
>>
>> Also, the tests were expanded to test the display of empty loaders and empty parent loaders.
>>
>> Thanks to @dholmes-ora for finding this bug.
>
> Thomas Stuefe has updated the pull request incrementally with one additional commit since the last revision:
>
> cjplummer feedback
Hi Thomas,
Generally this seems fine - but one issue below.
Thanks.
src/hotspot/share/classfile/classLoaderHierarchyDCmd.cpp line 209:
> 207: st->print(" \"%s\",", the_loader_name);
> 208: }
> 209: st->print(" %s", the_loader_class_name);
`the_loader_class_name` could be NULL here. You need to change `loader_class_name()` t return "??" like the original code uses.
-------------
Changes requested by dholmes (Reviewer).
PR: https://git.openjdk.org/jdk/pull/10312
More information about the serviceability-dev
mailing list