diff --git a/core/src/main/java/com/taobao/arthas/core/advisor/Enhancer.java b/core/src/main/java/com/taobao/arthas/core/advisor/Enhancer.java index 4076f44f2..4cd05774d 100644 --- a/core/src/main/java/com/taobao/arthas/core/advisor/Enhancer.java +++ b/core/src/main/java/com/taobao/arthas/core/advisor/Enhancer.java @@ -442,16 +442,8 @@ public class Enhancer implements ClassFileTransformer { } } - final ClassFileTransformer resetClassFileTransformer = new ClassFileTransformer() { - @Override - public byte[] transform(ClassLoader loader, String className, Class classBeingRedefined, - ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException { - return null; - } - }; - try { - enhance(inst, resetClassFileTransformer, enhanceClassSet); + enhance(inst, enhanceClassSet); logger.info("Success to reset classes: " + enhanceClassSet); } finally { for (Class resetClass : enhanceClassSet) { @@ -464,18 +456,13 @@ public class Enhancer implements ClassFileTransformer { } // 批量增强 - private static void enhance(Instrumentation inst, ClassFileTransformer transformer, Set> classes) + private static void enhance(Instrumentation inst, Set> classes) throws UnmodifiableClassException { - try { - inst.addTransformer(transformer, true); - int size = classes.size(); - Class[] classArray = new Class[size]; - arraycopy(classes.toArray(), 0, classArray, 0, size); - if (classArray.length > 0) { - inst.retransformClasses(classArray); - } - } finally { - inst.removeTransformer(transformer); + int size = classes.size(); + Class[] classArray = new Class[size]; + arraycopy(classes.toArray(), 0, classArray, 0, size); + if (classArray.length > 0) { + inst.retransformClasses(classArray); } } }