[Nestmates] RFR: 8192889: [Nestmates] ciField constructor needs to clear nest-host related exceptions
David Holmes
david.holmes at oracle.com
Fri Dec 1 09:29:16 UTC 2017
Bug: https://bugs.openjdk.java.net/browse/JDK-8192889
webrev: https://bugs.openjdk.java.net/browse/JDK-8192889
Xcomp testing exposed another issue with the compiler thread.
In ciField::ciField(ciInstanceKlass* klass, int index) we have:
// Access check based on declared_holder. canonical_holder should not
be used
// to check access because it can erroneously succeed. If this check
fails,
// propagate the declared holder to will_link() which in turn will
bail out
// compilation for this field access.
if (!Reflection::verify_field_access(klass->get_Klass(),
declared_holder->get_Klass(), canonical_holder,
field_desc.access_flags(), true)) {
_holder = declared_holder;
_offset = -1;
_is_constant = false;
return;
}
However if the access check failed because a nestmate access check
encountered an exception, the pending exception will trigger an
ExceptionMark entry failure in later processing. We need to clear the
exception before returning.
Thanks,
David
More information about the valhalla-dev
mailing list