On Tue, 5 Nov 2024 19:21:58 GMT, Chen Liang <li...@openjdk.org> wrote:
>> After the ClassFile API migration, when serializable lambdas are requested >> for hidden class callers, illegal class name is generated for the >> serialization methods, which previously had legal yet unusable class names, >> as hidden classes cannot be described by a `CONSTANT_Class_info`. >> >> This patch restores a similar older behavior of using legal yet unusable >> class names. Previously, the invalid `.` in hidden class names was replaced >> by a `/` as if a package separator; this patch changes it to a `_` like that >> in the generated lambda's class name. >> >> The bug report shows some unintended and erroneous usages of >> `LambdaMetafactory`. To clarify and to persuade against misuse, I added a >> paragraph of API notes to `LambdaMetafactory`, describing the impact of this >> API being designed to support Java language features. In particular, I used >> the scenario where people assumed LMf generates weak hidden classes, which >> happened in this issue report and in #12493, that misuse can lead to >> resource leaks. > > Chen Liang has updated the pull request incrementally with one additional > commit since the last revision: > > Add a test to ensure serializable lambda creation and basic execution in > hidden classes I have updated the documentation. The API note has been simplified to a simple warning about the intended uses and the resource leak risk. A new implementation note is added, mentioning the notorious "can't be unloaded" behavior #12493 in the reference implementation explicitly, and describe its implications. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21912#issuecomment-2471218170