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

Reply via email to