+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

Reply via email to