[jdk18] RFR: 8277964: ClassCastException with no stack trace is thrown with -Xcomp in method handle invocation

David Holmes dholmes at openjdk.java.net
Wed Dec 15 07:02:59 UTC 2021


On Wed, 15 Dec 2021 05:59:45 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

> 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.

src/hotspot/share/oops/method.cpp line 827:

> 825:  */
> 826: bool Method::can_omit_stack_trace() {
> 827:   if (method_holder()->class_loader_data()->is_boot_class_loader_data()) {

Do you actually need to check this?

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

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


More information about the core-libs-dev mailing list