RFR: 8257241: CDS should not handle disableEagerInitialization for archived lambda proxy classes [v2]

Mandy Chung mchung at openjdk.java.net
Tue Dec 1 22:22:58 UTC 2020


On Tue, 1 Dec 2020 21:58:16 GMT, Calvin Cheung <ccheung at openjdk.org> wrote:

>> Please review this change which includes:
>> 
>> - If the `jdk.internal.lambda.disableEagerInitialization`property is enabled, the `InnerClassLambdaMetafactory` will not involve CDS to archive lambda proxy classes or to find them from an archive.
>> 
>> - Not passing the `initialize` (same as `!disableEagerInitialization`) to `LambdaProxyClassArchive.find` and eventually to the `JVM_LookupLambdaProxyClassFromArchive` function.
>> 
>> Testing:
>> 
>> - [x] all cds/appcds tests locally on linux-x64
>> 
>> - [x] tiers 1 - 4 (in progress)
>
> Calvin Cheung has updated the pull request incrementally with one additional commit since the last revision:
> 
>   added a test

test/hotspot/jtreg/runtime/cds/appcds/LambdaEagerInit.java line 36:

> 34:  * @requires vm.cds
> 35:  * @library /test/lib /test/hotspot/jtreg/runtime/cds/appcds
> 36:  * @compile ../../../../../jdk/java/lang/invoke/lambda/LambdaEagerInitTest.java

I think it's better to make a copy of this test along side with this test.

test/hotspot/jtreg/runtime/cds/appcds/LambdaEagerInit.java line 77:

> 75:               .shouldHaveExitValue(0);
> 76: 
> 77:         // run with archive without the -Djdk.internal.lambda.disableEagerInitialization=true property

Minor suggestion: make this test case in a separate `testWithEagerInitializationEnabled` method.   `testImpl` can be renamed to `testWithEagerInitializationDisabled`.

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

PR: https://git.openjdk.java.net/jdk/pull/1542


More information about the core-libs-dev mailing list