[14] RFR(S) 8235438: [JVMCI] StackTraceElement::decode should use the original Method

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Dec 6 19:23:20 UTC 2019


https://cr.openjdk.java.net/~kvn/8235438/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8235438

This fix is prepared by Tom R.

"The JDK14 version of StackTraceElement::decode is based on the JDK8 code which contains mixed usages of 
method->constants() and method->method_holder()->constants() assuming they point to the same thing. In the case of 
anonymous methods this isn't true. Usually this isn't a problem but if CDS is enabled the the version flag of 
method->method_holder()->constants() is non-zero but version of of method->constants() is 0 which causes the code to 
switch constants pools and it reads garbage. JDK-8140685 [1] refactored this code to remove this logic and the JVMCI 
version of this code should be converted to use the same scheme."

I tested tier1-2 and tier3-4-graal. All clean.

Thanks,
Vladimir

[1] https://bugs.openjdk.java.net/browse/JDK-8140685


More information about the hotspot-runtime-dev mailing list