public Class findClass ( String className ) throws ClassNotFoundException { // If the class file is in memory, use it byte [ ] cdata = this . bytecodes . get ( className ) ; String path = className . replace ( ' ' , ' ' ) + ".class" ; if ( cdata == null ) { // If the bytecode preprocessor is not enabled, use super.findClass // as usual. /* XXX if (!PreprocessorUtil.isPreprocessorEnabled()) { return super.findClass(className); } */ // read class data from file cdata = loadClassDataFromFile ( path ) ; if ( cdata == null ) { throw new ClassNotFoundException ( className ) ; } } // Preprocess the loaded byte code /* XXX if (PreprocessorUtil.isPreprocessorEnabled()) { cdata = PreprocessorUtil.processClass(path, cdata); } */ Class clazz = null ; if ( securityManager != null ) { ProtectionDomain pd = new ProtectionDomain ( codeSource , permissionCollection ) ; clazz = defineClass ( className , cdata , 0 , cdata . length , pd ) ; } else { clazz = defineClass ( className , cdata , 0 , cdata . length ) ; } return clazz ; }
START OF IASRI 4709374