RFR: 8292914: Drop the counter from lambda class names [v6]

David M. Lloyd duke at openjdk.org
Sat Feb 18 03:35:30 UTC 2023


On Fri, 17 Feb 2023 02:11:10 GMT, Mandy Chung <mchung at openjdk.org> wrote:

>> David M. Lloyd has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Use a unique index for the dumped lambda class instead of a time stamp
>
> `this_class` in the classbyte is shown in the VM logging (`-Xlog:class+nestmates=debug`).  It'd be helpful if it can easily correlate to the dumped file.   For example, 3 lambda proxy classes of the same name of `this_class` but they are unique hidden classes.
> 
> 
> 0.058s][info ][class,nestmates] LookupDefineClass: jdk/internal/module/DefaultRoots$$Lambda$ - with dynamic nest-host jdk.internal.module.DefaultRoots, hidden, strong, with vm annotations
> [0.058s][debug][class,nestmates] Dynamic nestmate: java.base/jdk.internal.module.DefaultRoots$$Lambda$/0x000000080000a970, nest_host jdk.internal.module.DefaultRoots, is hidden
> [0.062s][info ][class,nestmates] LookupDefineClass: jdk/internal/module/DefaultRoots$$Lambda$ - with dynamic nest-host jdk.internal.module.DefaultRoots, hidden, strong, with vm annotations
> [0.062s][debug][class,nestmates] Dynamic nestmate: java.base/jdk.internal.module.DefaultRoots$$Lambda$/0x000000080000b998, nest_host jdk.internal.module.DefaultRoots, is hidden
> [0.068s][info ][class,nestmates] LookupDefineClass: jdk/internal/module/DefaultRoots$$Lambda$ - with dynamic nest-host jdk.internal.module.DefaultRoots, hidden, strong, with vm annotations
> [0.068s][debug][class,nestmates] Dynamic nestmate: java.base/jdk.internal.module.DefaultRoots$$Lambda$/0x000000080000c0b0, nest_host jdk.internal.module.DefaultRoots, is hidden
> 
> 
> What about keeping your original idea - the filename matching the hidden class name if successfully defined.   If it fails at `defineHiddenClass` time, use `lambdaClassName` + counter? 
> 
> Also, `test/jdk/java/lang/StackWalker/VerifyStackTrace.java` tests need update because of the lambda proxy class name change.

I've updated the patch to work as I originally imagined at the suggestion of @mlchung and it looks like the remaining tests are passing, including on Windows now that it is no longer timestamp-based.

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

PR: https://git.openjdk.org/jdk/pull/12579


More information about the core-libs-dev mailing list