RFR: 8314250: CDS dump error message: Invoker type parameter must start and end with Object: L3I_L

Calvin Cheung ccheung at openjdk.org
Wed Mar 6 01:11:55 UTC 2024


To avoid the CDS dump error message, a fix is during dumping a classlist, check if an invoker can be archived. 
If not, don't write the invoker info into the classlist, i.e. don't call `logLambdaFormInvoker()`. While generating holder classes (in `generateHolderClasses()`), don't add the `MethodType` to the `invokerTypes` if will fail the check in the `build()` method which would result in a `RuntimeException`.

Also updated the `MethodHandlesInvokersTest.java` under `appcds/methodHandles` and `appcds/dynamicArchive/methodHandles` to check that the "Failed to generate LambdaForm holder classes" error is not in the output;

Passed tiers 1 - 3 testing.

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

Commit messages:
 - update fix
 - Merge branch 'master' into 8314250-dump-error
 - Merge branch 'master' into 8314250-dump-error
 - 8314250: CDS dump error message: Invoker type parameter must start and end with Object: L3I_L

Changes: https://git.openjdk.org/jdk/pull/17953/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17953&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8314250
  Stats: 133 lines in 17 files changed: 105 ins; 2 del; 26 mod
  Patch: https://git.openjdk.org/jdk/pull/17953.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17953/head:pull/17953

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


More information about the core-libs-dev mailing list