protected Class loadClass()

in src/main/java/org/apache/sling/commons/classloader/impl/PackageAdminClassLoader.java [244:272]


    protected Class<?> loadClass(final String name, final boolean resolve) throws ClassNotFoundException {
        final Class<?> cachedClass = this.classCache.get(name);
        if ( cachedClass != null ) {
            return cachedClass;
        }
        if ( negativeClassCache.contains(name) ) {
            throw new ClassNotFoundException("Class not found " + name);
        }
        String packageName = getPackageFromClassName(name);
        Class<?> clazz;
        try {
            clazz = super.loadClass(name, resolve);
        } catch (final ClassNotFoundException cnfe) {
            try {
                clazz = getClassFromBundles(name);
            } catch (ClassNotFoundException innerCNFE) {
                negativeClassCache.add(name);
                this.factory.addUnresolvedPackage(packageName);
                throw innerCNFE;
            }
        }
        if ( clazz == null ) {
            negativeClassCache.add(name);
            this.factory.addUnresolvedPackage(packageName);
            throw new ClassNotFoundException("Class not found " + name);
        }
        this.classCache.put(name, clazz);
        return clazz;
    }