On Mon, 26 Oct 2026 16:32:30 GMT, Chris Plummer <[email protected]> wrote:
>> This change prevents NullPointerException in the clhsdb dumpcodecache >> command. >> >> `CodeCache.createCodeBlobWrapper()` causes NullPointerException. >> `CodeHeap.findStart()` may return null and `CodeHeap.iterate()` passes it to >> `CodeCache.createCodeBlobWrapper()` as the `cbStart` argument. >> >> https://github.com/openjdk/jdk/blob/bbd629b0ef4d0ac7fbc2b33bb76170fd15060cd3/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/CodeHeap.java#L111 >> >> So this change makes `createCodeBlobWrapper()` return null when `cbStart` is >> null. >> >> ### Testing >> * jtreg:hotspot/jtreg/serviceability/sa/ >> >> $ make test TEST="jtreg:hotspot/jtreg/serviceability/sa/" >> ============================== >> TEST TOTAL PASS FAIL ERROR >> SKIP >> jtreg:test/hotspot/jtreg/serviceability/sa 81 76 0 0 >> 5 >> ============================== >> >> * Manual verification: dumpcodecache does not output NullPointerException. >> >> $ jhsdb clhsdb --pid 654607 >> Attaching to process 654607, please wait... >> hsdb> dumpcodecache >> <snip> >> hsdb> >> >> Note: `hotspot/jtreg/serviceability/sa/TestDebugInfoDecode.java` passed, but >> printed NullPointerException before this change. There is no >> NullPointerException in the test output after the change. >> >> --------- >> - [x] I confirm that I make this contribution in accordance with the >> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). > >> Note: hotspot/jtreg/serviceability/sa/TestDebugInfoDecode.java passed, but >> printed NullPointerException before this change. There is no >> NullPointerException in the test output after the change. > > Did it fail as a result? It looks like it should have. @plummercj > Did it fail as a result? It looks like it should have. No, it passed. `CodeHeap.iterate()` catches RuntimeException and just prints it via `e.printStackTrace()`. TestDebugInfoDecode checks the exit code, but doesn't check the content of the output. https://github.com/openjdk/jdk/blob/bbd629b0ef4d0ac7fbc2b33bb76170fd15060cd3/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/CodeHeap.java#L109-L121 https://github.com/openjdk/jdk/blob/bbd629b0ef4d0ac7fbc2b33bb76170fd15060cd3/test/hotspot/jtreg/serviceability/sa/TestDebugInfoDecode.java#L103-L104 ------------- PR Comment: https://git.openjdk.org/jdk/pull/33568#issuecomment-6432284207
