< prev index next >
src/java.base/share/classes/java/lang/invoke/MemberName.java
Print this page
rev 15090 : 8161588: MemberName::resolveOrNull cause and hide NoSuchMethodErrors
Reviewed-by: mhaupt
@@ -1080,14 +1080,17 @@
* If lookup fails or access is not permitted, return null.
* Otherwise a fresh copy of the given member is returned, with modifier bits filled in.
*/
public
MemberName resolveOrNull(byte refKind, MemberName m, Class<?> lookupClass) {
- MemberName result = resolve(refKind, m, lookupClass);
- if (result.isResolved())
- return result;
+ assert(refKind == m.getReferenceKind());
+ m = MethodHandleNatives.resolveOrNull(m.clone(), lookupClass);
+ if (m == null)
return null;
+ m.checkForTypeAlias(m.getDeclaringClass());
+ m.resolution = null;
+ return m;
}
/** Return a list of all methods defined by the given class.
* Super types are searched (for inherited members) if {@code searchSupers} is true.
* Access checking is performed on behalf of the given {@code lookupClass}.
* Inaccessible members are not added to the last.
< prev index next >