-
Enhancement
-
Resolution: Fixed
-
P3
-
None
-
repo-panama
In a recent change, this function was introduced:
void ThreadShadow::clear_pending_nonasync_exception() {
// Do not clear probable async exceptions.
if (!_pending_exception->is_a(SystemDictionary::ThreadDeath_klass()) &&
_pending_exception->klass() != (_pending_exception->klass() != SystemDictionary::InternalError_klass() ||
java_lang_InternalError::during_unsafe_access(_pending_exception) != JNI_TRUE)) {
clear_pending_exception();
}
}
This code should be enhanced to also test for the new ScopedAccessError async exception, so that this is not accidentally cleared.
void ThreadShadow::clear_pending_nonasync_exception() {
// Do not clear probable async exceptions.
if (!_pending_exception->is_a(SystemDictionary::ThreadDeath_klass()) &&
_pending_exception->klass() != (_pending_exception->klass() != SystemDictionary::InternalError_klass() ||
java_lang_InternalError::during_unsafe_access(_pending_exception) != JNI_TRUE)) {
clear_pending_exception();
}
}
This code should be enhanced to also test for the new ScopedAccessError async exception, so that this is not accidentally cleared.
- relates to
-
JDK-8249451 Unconditional exceptions clearing logic in compiler code should honor Async Exceptions.
-
- Resolved
-