private void generateRunnables(RunnableGenerator gen, Runnable[] runnables) { final MemoryClassLoader loader = AccessController.doPrivileged( new PrivilegedAction<MemoryClassLoader>() { public MemoryClassLoader run() { return new MemoryClassLoader(clazz.getClassLoader()); } }); for (int index = 0; index < timerHandlers.length; index++) { Method m = timerHandlers[index]; try { final String className = "net/java/btrace/BTraceRunnable$" + index; final byte[] buf = gen.generate(m, className); Class cls = AccessController.doPrivileged( new PrivilegedExceptionAction<Class>() { public Class run() throws Exception { return loader.loadClass(className.replace('/', '.'), buf); } }); runnables[index] = (Runnable) cls.newInstance(); } catch (RuntimeException re) { throw re; } catch (Exception exp) { throw new RuntimeException(exp); } } }
private void generateRunnables(RunnableGenerator gen, Runnable[] runnables) { final MemoryClassLoader loader = AccessController.doPrivileged( new PrivilegedAction<MemoryClassLoader>() { public MemoryClassLoader run() { return new MemoryClassLoader(clazz.getClassLoader()); } }); for (int index = 0; index < timerHandlers.length; index++) { Method m = timerHandlers[index]; try { final String className = "net/java/btrace/BTraceRunnable$" + index; final byte[] buf = gen.generate(m, className); Class cls = AccessController.doPrivileged( new PrivilegedExceptionAction<Class>() { public Class run() throws Exception { return loader.loadClass(className.replace('/', '.'), buf); } }); runnables[index] = (Runnable) cls.newInstance(); } catch (RuntimeException re) { throw re; } catch (Exception exp) { throw new RuntimeException(exp); } } }
try { final String className = "Runnable$" + index; final byte[] bytes = gen.generate(method, className); ClassLoader loader = new ClassLoader() { public Class findClass(String name)