A proper fix for this is to use the catchException combination. However, that 
introduces significant cold startup performance regression. JDK-8278447 tracks 
the work to address the performance regression using catchException and 
asSpreader combinator. It may require significant work and refactoring which is 
risky for JDK 18. 

It is proposed to implement a workaround in C2 to white list the relevant 
methods (all methods in sun.invoke.util.ValueConversions class) not to omit 
stack trace when exception is thrown in them.

Added new regression test. Tested tier1-3.

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

Commit messages:
 - 8277964: ClassCastException with no stack trace is thrown with -Xcomp in 
method handle invocation

Changes: https://git.openjdk.java.net/jdk18/pull/27/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk18&pr=27&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8277964
  Stats: 151 lines in 7 files changed: 149 ins; 1 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk18/pull/27.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk18 pull/27/head:pull/27

PR: https://git.openjdk.java.net/jdk18/pull/27

Reply via email to