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