RFR: 8255493: Support for pre-generated java.lang.invoke classes in CDS dynamic archive
David Holmes
dholmes at openjdk.java.net
Thu Apr 22 06:08:23 UTC 2021
On Wed, 21 Apr 2021 22:34:48 GMT, Yumin Qi <minqi at openjdk.org> wrote:
> Hi, Please review
>
> When do dynamic dump, the pre-generated lambda form classes from java.lang.invoke are not stored in dynamic archive. The patch will regenerate the four holder classes,
> "java.lang.invoke.Invokers$Holder",
> "java.lang.invoke.DirectMethodHandle$Holder",
> "java.lang.invoke.DelegatingMethodHandle$Holder",
> "java.lang.invoke.LambdaForm$Holder"
> which will include the versions in static archive and new loaded functions all together and stored in dynamic archive. New test case added.
> (Minor change to PrintSharedArchiveAtExit, which the index is not consecutive)
>
> Tests: tier1,tier2,tier3,tier4
>
> Thanks
> Yumin
src/hotspot/share/memory/dynamicArchive.cpp line 374:
> 372: if (LambdaFormInvokers::should_regenerate_holder_classes()) {
> 373: JavaThread* THREAD = JavaThread::current();
> 374: assert(THREAD->is_Java_thread(), "Should be JavaThread");
JavaThread::current() already asserts this.
src/hotspot/share/memory/dynamicArchive.cpp line 376:
> 374: assert(THREAD->is_Java_thread(), "Should be JavaThread");
> 375: log_info(cds, dynamic)("Regenerate lambdaform holder classes ...");
> 376: LambdaFormInvokers::regenerate_holder_classes(THREAD);
What if this throws an exception?
-------------
PR: https://git.openjdk.java.net/jdk/pull/3611
More information about the hotspot-dev
mailing list