public byte[] transform(String className) { if (transformer.filterClassName(className)) { try { CtClass classToTransform = classPool.get(className); if (!classToTransform.isFrozen() && transformer.filterCtClass(classToTransform)) { transformer.applyTransformations(classPool, classToTransform); classToTransform.getClassFile().compact(); classToTransform.rebuildClassFile(); try (ByteArrayOutputStream baos = new ByteArrayOutputStream(4096); DataOutputStream out = new DataOutputStream(new BufferedOutputStream(baos))) { classToTransform.toBytecode(out); out.flush(); return baos.toByteArray(); } catch (IOException | CannotCompileException e) { throw new IllegalStateException(e); } } } catch (NotFoundException e) { throw new IllegalStateException(e); } } return null; }