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