ignore cglib classes

This commit is contained in:
金戟 2021-04-03 22:51:28 +08:00
parent c9c8ba6c24
commit 14e4d2db5b
2 changed files with 3 additions and 1 deletions

View File

@ -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$";

View File

@ -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();