On Tue, 25 Jul 2023 05:36:15 GMT, David Holmes <dhol...@openjdk.org> wrote:

>> This patch adds NestHost and NestMembers attributes to the class dumped by 
>> SA.
>> 
>> Testing: `test/hotspot/jtreg/serviceability/sa` and 
>> `test/jdk/sun/tools/jhsdb`
>> Manual testing by dumping `j.l.String` and 
>> `j.l.String$CaseInsensitiveComparator` classes.
>> `j.l.String` shows one entry in `NestMembers` attribute for 
>> `j.l.String$CaseInsensitiveComparator` and 
>> `j.l.String$CaseInsensitiveComparator` has `j.l.String` as its `NestHost`.
>
> We need to be sure this works as expected for top-level classes that have no 
> nest members, and deeply nested nest members, plus dynamically injected 
> hidden classes that are nest members. I'm unclear if this is intended to only 
> expose the same details as would be statically defined in the attribute in 
> the classfile?

@dholmes-ora sorry for responding late. I got sidetracked by some other work.

> We need to be sure this works as expected for top-level classes that have no 
> nest members, and deeply nested nest members, plus dynamically injected 
> hidden classes that are nest members.

I am not sure I understand this concern. We are getting nest-host and 
nest-members from the InstanceKlass. As long as this information is recorded in 
InstanceKlass, it would work. Can you please elaborate your concern about the 
cases you feel may not work.

> I'm unclear if this is intended to only expose the same details as would be 
> statically defined in the attribute in the classfile?

It is to expose the details as the JVM sees, which may be different from what 
is statically defined in the classfile if agents are involved.

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

PR Comment: https://git.openjdk.org/jdk/pull/15005#issuecomment-1653934767

Reply via email to