private Class<?> doLoadClass(String name) throws ClassNotFoundException { checkPackageAccess(name); if ((this.delegate || filter(name, true))) { Class<?> result = loadFromParent(name); return (result != null) ? result : findClassIgnoringNotFound(name); } Class<?> result = findClassIgnoringNotFound(name); return (result != null) ? result : loadFromParent(name); }
@Override public Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { synchronized (getClassLoadingLock(name)) { Class<?> result = findExistingLoadedClass(name); result = (result != null) ? result : doLoadClass(name); if (result == null) { throw new ClassNotFoundException(name); } return resolveIfNecessary(result, resolve); } }
private Class<?> findExistingLoadedClass(String name) { Class<?> resultClass = findLoadedClass0(name); resultClass = (resultClass != null) ? resultClass : findLoadedClass(name); return resultClass; }
private Class<?> findClassIgnoringNotFound(String name) { try { return findClass(name); } catch (ClassNotFoundException ex) { return null; } }