On Tue, 6 Jan 2026 21:29:36 GMT, Larry Cable <[email protected]> wrote:
>> modified the pre-existing VM.classes jcmd to add a 'location' option, that
>> when specified, will (natively) attempt to obtain the value (if non-null) of
>> the location URL of the CodeSource of each classes ProtectionDomain.
>>
>> effectively:
>>
>> someObject.getClass().getProtectionDomain().getCodeSource().getLocation().toExternalForm()
>>
>> (where interim oops are null-checked)
>
> Larry Cable has updated the pull request incrementally with one additional
> commit since the last revision:
>
> JDK-8327246: updated copyright year. fixed Capitialization nit and
> restructured use of InstanceKlass local as per comments
Overall approach seems reasonable. I have a couple of queries.
Thanks
src/hotspot/share/oops/instanceKlass.cpp line 2359:
> 2357: // initialization state
> 2358:
> 2359: InstanceKlass *ik = k->is_instance_klass() ? InstanceKlass::cast(k) :
> nullptr;
Suggestion:
InstanceKlass* ik = k->is_instance_klass() ? InstanceKlass::cast(k) : nullptr;
src/hotspot/share/oops/instanceKlass.cpp line 2386:
> 2384: oop pd = java_lang_Class::protection_domain(k->java_mirror());
> 2385:
> 2386: if (pd != nullptr && (ik = pd->klass()->is_instance_klass() ?
> InstanceKlass::cast(pd->klass()) : nullptr) != nullptr) {
Is a non-instance-class possible here??
src/hotspot/share/oops/instanceKlass.cpp line 2397:
> 2395: oop cs = pd->obj_field(csfd.offset());
> 2396:
> 2397: if (cs != nullptr && (ik = cs->klass()->is_instance_klass() ?
> InstanceKlass::cast(cs->klass()) : nullptr) != nullptr) {
Is a non-instance-class possible here??
src/hotspot/share/oops/instanceKlass.cpp line 2406:
> 2404: oop loc = cs->obj_field(locfd.offset());
> 2405:
> 2406: if (loc != nullptr && loc->klass() ==
> vmClasses::String_klass()) {
Why are you checking the class type?
-------------
PR Review: https://git.openjdk.org/jdk/pull/29048#pullrequestreview-3632862000
PR Review Comment: https://git.openjdk.org/jdk/pull/29048#discussion_r2666611656
PR Review Comment: https://git.openjdk.org/jdk/pull/29048#discussion_r2666619018
PR Review Comment: https://git.openjdk.org/jdk/pull/29048#discussion_r2666619778
PR Review Comment: https://git.openjdk.org/jdk/pull/29048#discussion_r2666626257