From adf7725618fcd5962cce2be93d8c16bd0a98ba2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=B4=A2=E6=82=9F?= <32218468+ljh19971113@users.noreply.github.com> Date: Fri, 30 Apr 2021 14:48:38 +0800 Subject: [PATCH] Remove the useless resetClassFileTransformer in Enhancer (#1786) --- .../taobao/arthas/core/advisor/Enhancer.java | 27 +++++-------------- 1 file changed, 7 insertions(+), 20 deletions(-) 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); } } }