From 14e4d2db5b9a639fe1d74f7e26022604570faccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=91=E6=88=9F?= Date: Sat, 3 Apr 2021 22:51:28 +0800 Subject: [PATCH] ignore cglib classes --- .../java/com/alibaba/testable/agent/constant/ConstPool.java | 1 + .../testable/agent/transformer/TestableClassTransformer.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/testable-agent/src/main/java/com/alibaba/testable/agent/constant/ConstPool.java b/testable-agent/src/main/java/com/alibaba/testable/agent/constant/ConstPool.java index a28fb18..de97780 100644 --- a/testable-agent/src/main/java/com/alibaba/testable/agent/constant/ConstPool.java +++ b/testable-agent/src/main/java/com/alibaba/testable/agent/constant/ConstPool.java @@ -15,6 +15,7 @@ public class ConstPool { public static final String MOCK_METHOD = "com.alibaba.testable.core.annotation.MockMethod"; public static final String MOCK_CONSTRUCTOR = "com.alibaba.testable.core.annotation.MockConstructor"; + public static final String CGLIB_CLASS_PATTERN = "$$EnhancerBy"; public static final String KOTLIN_POSTFIX_COMPANION = "$Companion"; public static final String KOTLIN_PREFIX_ACCESS = "access$"; diff --git a/testable-agent/src/main/java/com/alibaba/testable/agent/transformer/TestableClassTransformer.java b/testable-agent/src/main/java/com/alibaba/testable/agent/transformer/TestableClassTransformer.java index 18d3d75..43b0649 100644 --- a/testable-agent/src/main/java/com/alibaba/testable/agent/transformer/TestableClassTransformer.java +++ b/testable-agent/src/main/java/com/alibaba/testable/agent/transformer/TestableClassTransformer.java @@ -20,6 +20,7 @@ import java.lang.instrument.ClassFileTransformer; import java.security.ProtectionDomain; import java.util.List; +import static com.alibaba.testable.agent.constant.ConstPool.CGLIB_CLASS_PATTERN; import static com.alibaba.testable.agent.constant.ConstPool.KOTLIN_POSTFIX_COMPANION; import static com.alibaba.testable.agent.util.ClassUtil.toJavaStyleClassName; import static com.alibaba.testable.core.constant.ConstPool.DOLLAR; @@ -139,7 +140,7 @@ public class TestableClassTransformer implements ClassFileTransformer { private boolean isSystemClass(String className) { // className can be null for Java 8 lambdas - if (null == className) { + if (null == className || className.contains(CGLIB_CLASS_PATTERN)) { return true; } String whitePrefix = GlobalConfig.getPkgPrefix();