TransletClassLoader loader = (TransletClassLoader) AccessController.doPrivileged( new PrivilegedAction() { public Object run() {  return new TransletClassLoader( Thread.currentThread().getContextClassLoader()); } } );
TransletClassLoader loader = new TransletClassLoader(ObjectFactory.findClassLoader());
    private void defineTransletClasses()	throws TransformerConfigurationException {	if (_bytecodes == null) {	    ErrorMsg err = new ErrorMsg(ErrorMsg.NO_TRANSLET_CLASS_ERR);	    throw new TransformerConfigurationException(err.toString());	}	TransletClassLoader loader = 	    (TransletClassLoader) AccessController.doPrivileged(		new PrivilegedAction() {			public Object run() {			    /* 			     * Get the loader from the current thread instead of			     * the class. This is important for translets that load			     * external Java classes and run in multi-threaded envs.			     */			    return new TransletClassLoader(				Thread.currentThread().getContextClassLoader());			}		    }		);	try {	    final int classCount = _bytecodes.length;	    _class = new Class[classCount];	    if (classCount > 1) {	        _auxClasses = new Hashtable();	    }	    for (int i = 0; i < classCount; i++) {		_class[i] = loader.defineClass(_bytecodes[i]);		final Class superClass = _class[i].getSuperclass();		// Check if this is the main class		if (superClass.getName().equals(ABSTRACT_TRANSLET)) {		    _transletIndex = i;		}		else {		    _auxClasses.put(_class[i].getName(), _class[i]);		}	    }	    if (_transletIndex < 0) {		ErrorMsg err= new ErrorMsg(ErrorMsg.NO_MAIN_TRANSLET_ERR, _name);		throw new TransformerConfigurationException(err.toString());	    }	}	catch (ClassFormatError e) {	    ErrorMsg err = new ErrorMsg(ErrorMsg.TRANSLET_CLASS_ERR, _name);	    throw new TransformerConfigurationException(err.toString());	}	catch (LinkageError e) {	    ErrorMsg err = new ErrorMsg(ErrorMsg.TRANSLET_OBJECT_ERR, _name);	    throw new TransformerConfigurationException(err.toString());	}    }