protected Class<?> resolveClass(ObjectStreamClass classDesc) throws IOException, ClassNotFoundException {
  Object annotation=readLocation();
  String className=classDesc.getName();
  ClassLoader defaultLoader=skipDefaultResolveClass ? null : latestUserDefinedLoader();
  String codebase=null;
  if (!useCodebaseOnly && annotation instanceof String) {
    codebase=(String)annotation;
  }
  try {
    return RMIClassLoader.loadClass(codebase,className,defaultLoader);
  }
 catch (  AccessControlException e) {
    return checkSunClass(className,e);
  }
catch (  ClassNotFoundException e) {
    try {
      if (Character.isLowerCase(className.charAt(0)) && className.indexOf('.') == -1) {
        return super.resolveClass(classDesc);
      }
    }
 catch (    ClassNotFoundException e2) {
    }
    throw e;
  }
}

protected Class < ? > resolveClass ( ObjectStreamClass classDesc ) throws IOException , ClassNotFoundException { Object annotation = readLocation ( ) ; String className = classDesc . getName ( ) ; ClassLoader defaultLoader = skipDefaultResolveClass ? null : latestUserDefinedLoader ( ) ; String codebase = null ; if ( ! useCodebaseOnly && annotation instanceof String ) { codebase = ( String ) annotation ; } try { return RMIClassLoader . loadClass ( codebase , className , defaultLoader ) ; } catch ( AccessControlException e ) { return checkSunClass ( className , e ) ; } catch ( ClassNotFoundException e ) { try { if ( Character . isLowerCase ( className . charAt ( 0 ) ) && className . indexOf ( '.' ) == - 1 ) { return super . resolveClass ( classDesc ) ; } } catch ( ClassNotFoundException e2 ) { } throw e ; } }
resolveclass is extended to acquire ( if present ) the location from which to load the specified class . it will find , load , and return the class .
