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. ------------- Commit messages: - JDK-8293156-Dcmd-VM.classloaders-fails-to-print-the-full-hierarchy Changes: https://git.openjdk.org/jdk/pull/10312/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10312&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8293156 Stats: 145 lines in 2 files changed: 97 ins; 24 del; 24 mod Patch: https://git.openjdk.org/jdk/pull/10312.diff Fetch: git fetch https://git.openjdk.org/jdk pull/10312/head:pull/10312 PR: https://git.openjdk.org/jdk/pull/10312