@Override protected synchronized Class<?> loadClass(String name,boolean resolve) throws ClassNotFoundException {
  Class c=findLoadedClass(name);
  if ((c == null) && (myLoader != null) && (myLoader != targetLoader)) {
    try {
      c=myLoader.loadClass(name);
    }
 catch (    ClassNotFoundException ignored) {
      if (LOGGER.isLoggable(Level.FINEST)) {
        LOGGER.log(Level.FINEST,"Ignoring ClassNotFoundException, continuing with parent ClassLoader.",ignored);
      }
    }
  }
  if (c == null) {
    c=super.loadClass(name,false);
  }
  if (resolve) {
    resolveClass(c);
  }
  return c;
}

@ Override protected synchronized Class < ? > loadClass ( String name , boolean resolve ) throws ClassNotFoundException { Class c = findLoadedClass ( name ) ; if ( ( c == null ) && ( myLoader != null ) && ( myLoader != targetLoader ) ) { try { c = myLoader . loadClass ( name ) ; } catch ( ClassNotFoundException ignored ) { if ( LOGGER . isLoggable ( Level . FINEST ) ) { LOGGER . log ( Level . FINEST , "Ignoring ClassNotFoundException, continuing with parent ClassLoader." , ignored ) ; } } } if ( c == null ) { c = super . loadClass ( name , false ) ; } if ( resolve ) { resolveClass ( c ) ; } return c ; }
override class loading to enable possible delegation to the two class loaders , rather than just to the parent .
