RFR: 8371083: FollowReferences reports non-class objects as JVMTI_HEAP_REFERENCE_SYSTEM_CLASS

Serguei Spitsyn sspitsyn at openjdk.org
Wed Nov 12 23:36:02 UTC 2025


On Mon, 10 Nov 2025 20:54:56 GMT, Alex Menkov <amenkov at openjdk.org> wrote:

> FollowReferences with null initial_object starts heap walking from "heap roots", which include system classes.
> All oops from ClassLoaderDataGraph are reported with JVMTI_HEAP_REFERENCE_SYSTEM_CLASS kind, but some of the objects are not classes.
> The fix updates FollowReferences to report non-class objects from ClassLoaderDataGraph as JVMTI_HEAP_REFERENCE_OTHER
> 
> Testing: tier1..4,hs-tier5-svc

The fix looks good. I've posted a couple of nits.

src/hotspot/share/prims/jvmtiTagMap.cpp line 2193:

> 2191: };
> 2192: 
> 2193: // A supporting closure used to process ClassLoaderData roots

Nit: Need dot at the end of comment.

test/hotspot/jtreg/serviceability/jvmti/FollowReferences/KindSystemClass/libKindSystemClass.cpp line 79:

> 77: 
> 78:   for (int i = 0; i < class_counter; i++) {
> 79:     tags[i] = i+1;

Nit: Need spaces around `+` sign.

test/hotspot/jtreg/serviceability/jvmti/FollowReferences/KindSystemClass/libKindSystemClass.cpp line 101:

> 99: }
> 100: 
> 101: 

Nit: Unneeded extra empty line.

-------------

Marked as reviewed by sspitsyn (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/28224#pullrequestreview-3455948919
PR Review Comment: https://git.openjdk.org/jdk/pull/28224#discussion_r2520165317
PR Review Comment: https://git.openjdk.org/jdk/pull/28224#discussion_r2520125928
PR Review Comment: https://git.openjdk.org/jdk/pull/28224#discussion_r2520132469


More information about the hotspot-dev mailing list