private Class createProxy(Class<?> clsToProxy, String proxyName, ClassLoader cl) { String clsName = proxyName.replaceAll("\\.", "/"); try { return cl.loadClass(proxyName); } catch (Exception e) { } try { byte[] proxyBytes = generateProxy(clsToProxy, clsName); return (Class<?>) unsafe.defineClass(proxyName, proxyBytes, 0, proxyBytes.length, cl, this.getClass().getProtectionDomain()); } catch (ProxyGenerationException e) { throw new InternalError(e.toString()); } }