public byte[] translate( AspectManager manager, String className, ClassLoader loader, byte[] classfileBuffer) throws Exception { if (isReEntry()) { return null; } setReEntry(); super.setTransformationStarted(); try { if (manager.isNonAdvisableClassName(className)) { return null; } AOPClassPool pool = (AOPClassPool) manager.registerClassLoader(loader); CtClass clazz = obtainCtClassInfo(pool, className, classfileBuffer); CtClass woven = instrumentClass(manager, pool, clazz, true); if (woven != null) { pool.lockInCache(woven); if (AspectManager.debugClasses) { SecurityActions.debugWriteFile(clazz); } byte[] rtn = woven.toBytecode(); if (AspectManager.getPrune()) woven.prune(); return rtn; } else { pool.soften(clazz); } return null; } catch (Exception ex) { if (!(ex instanceof NotFoundException)) { if (verbose) logger.error(ex); else logger.error(ex.getMessage() + ".. Do verbose mode if you want full stack trace."); } throw ex; } finally { clearReEntry(); } }