+1
Paul.
> On Mar 27, 2018, at 10:01 AM, Claes Redestad <claes.redes...@oracle.com>
> wrote:
>
> Paul,
>
> On 2018-03-27 18:07, Paul Sandoz wrote:
>
>> 2047
>> 2048 void checkSymbolicClass(Class<?> refc) throws
>> IllegalAccessException {
>> 2049 if (!isClassAccessible(refc)) {
>> 2050 throw new
>> MemberName(refc).makeAccessException("symbolic reference class is not
>> accessible", this);
>> 2051 }
>> 2052 }
>
> this one still throws IllegalAccessException, which extends ROE...
>
>> 2038 MemberName resolveOrNull(byte refKind, MemberName member)
>> throws ReflectiveOperationException {
>> 2039 // do this before attempting to resolve
>> 2040 if (!isClassAccessible(member.getDeclaringClass())) {
>> 2041 return null;
>> 2042 }
>> 2043 Objects.requireNonNull(member.getName());
>> 2044 Objects.requireNonNull(member.getType());
>> 2045 return IMPL_NAMES.resolveOrNull(refKind, member,
>> lookupClassOrNull());
>> 2046 }
>
> ... but is no longer used here. I'll remove the throws.
>
>
>> ...
>> 2499 try {
>> 2500 MemberName resolved2 =
>> publicLookup().resolveOrNull(refKind,
>> 2501 new MemberName(refKind, defc, member.getName(),
>> member.getType()));
>> 2502 if (resolved2 == null) {
>> 2503 return false;
>> 2504 }
>> 2505 checkSecurityManager(defc, resolved2);
>> 2506 } catch (ReflectiveOperationException | SecurityException
>> ex) {
>> 2507 return false;
>> 2508 }
>
> ... nor here, so ROE can no longer be caught here. Removing.
>
> http://cr.openjdk.java.net/~redestad/8200289/open.01/
>
> /Claes