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

Reply via email to