8241770: Module xxxAnnotation() methods throw NCDFE if module-info.class found as resource in unnamed module

Reviewed-by: mchung
This commit is contained in:
Alan Bateman 2020-06-11 07:27:22 +01:00
parent 96fadefaa3
commit c563c3d15b
3 changed files with 110 additions and 48 deletions

View file

@ -42,7 +42,6 @@ import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@ -1504,6 +1503,24 @@ public final class Module implements AnnotatedElement {
throw new ClassNotFoundException(cn);
}
}
@Override
protected Class<?> loadClass(String cn, boolean resolve)
throws ClassNotFoundException
{
synchronized (getClassLoadingLock(cn)) {
Class<?> c = findLoadedClass(cn);
if (c == null) {
if (cn.equals(MODULE_INFO)) {
c = findClass(cn);
} else {
c = super.loadClass(cn, resolve);
}
}
if (resolve)
resolveClass(c);
return c;
}
}
};
try {