[Nestmates] RFR: 8192889: [Nestmates] ciField constructor needs to clear nestmate related exceptions
David Holmes
david.holmes at oracle.com
Fri Dec 1 09:35:29 UTC 2017
Sorry copy'n'paste error (and fixed synopsis)
On 1/12/2017 7:29 PM, David Holmes wrote:
> Bug: https://bugs.openjdk.java.net/browse/JDK-8192889
> webrev: https://bugs.openjdk.java.net/browse/JDK-8192889
webrev: http://cr.openjdk.java.net/~dholmes/8192889/webrev/
David
> 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