@Override public Class<?> findClass(String name) throws ClassNotFoundException { for (ClassFinder d : delegates) { try { Class c = null; synchronized(d){ c = d.findExistingClass(name); if(c == null){ c = d.findClass(name); } } return c; } catch (ClassNotFoundException e) { // Ignore, as we search next in list } } throw new ClassNotFoundException(name); }
@Override protected Enumeration<URL> findResources(String name) throws IOException { List<Enumeration<URL>> enumerators = new ArrayList<Enumeration<URL>>(); for (ClassFinder delegate : delegates) { Enumeration<URL> enumerator = delegate.findResources(name); enumerators.add(enumerator); } return new CompositeEnumeration(enumerators); }
/** * @throws IllegalArgumentException when the delegate does not have same parent * as this classloader. */ private void checkDelegate(ClassFinder d) throws IllegalArgumentException { final ClassLoader dp = d.getParent(); final ClassLoader p = getParent(); if (dp != p) { // check for equals if ((dp != null && !dp.equals(p)) || !p.equals(dp)) { throw new IllegalArgumentException("Delegation hierarchy mismatch"); } } }
@Override public Class<?> findClass(String name) throws ClassNotFoundException { for (ClassFinder d : delegates) { try { Class c = null; synchronized(d){ c = d.findExistingClass(name); if(c == null){ c = d.findClass(name); } } return c; } catch (ClassNotFoundException e) { // Ignore, as we search next in list } } throw new ClassNotFoundException(name); }
/** * @throws IllegalArgumentException when the delegate does not have same parent * as this classloader. */ private void checkDelegate(ClassFinder d) throws IllegalArgumentException { final ClassLoader dp = d.getParent(); final ClassLoader p = getParent(); if (dp != p) { // check for equals if ((dp != null && !dp.equals(p)) || !p.equals(dp)) { throw new IllegalArgumentException("Delegation hierarchy mismatch"); } } }
@Override protected URL findResource(String name) { for (ClassFinder d : delegates) { URL u = d.findResource(name); if (u!=null) return u; } return null; }
@Override protected URL findResource(String name) { for (ClassFinder d : delegates) { URL u = d.findResource(name); if (u!=null) return u; } return null; }
public Class<?> findExistingClass(String name) { if(librariesClassFinder != null){ Class claz = librariesClassFinder.findExistingClass(name); if(claz != null){ return claz; } } return super.findLoadedClass(name); }
public Class<?> findClass(String name) throws ClassNotFoundException { Class c = null; if(librariesClassFinder != null){ try{ c = librariesClassFinder.findClass(name); }catch(ClassNotFoundException cnfe){ //ignore } if(c != null){ return c; } } return super.findClass(name); }
@Override protected Enumeration<URL> findResources(String name) throws IOException { List<Enumeration<URL>> enumerators = new ArrayList<Enumeration<URL>>(); for (ClassFinder delegate : delegates) { Enumeration<URL> enumerator = delegate.findResources(name); enumerators.add(enumerator); } return new CompositeEnumeration(enumerators); }