From 276c23e906f40f4d52b55570ccc30d805bed4a82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=91=E6=88=9F?= Date: Sun, 2 Aug 2020 22:54:21 +0800 Subject: [PATCH] refact and remove unused method --- .../testable/agent/handler/BaseClassHandler.java | 4 ++++ .../alibaba/testable/agent/model/MethodInfo.java | 16 ++-------------- .../transformer/TestableClassTransformer.java | 2 +- .../testable/core/accessor/PrivateAccessor.java | 9 ++++++--- .../testable/core/translator/BaseTranslator.java | 7 ++++++- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/agent/src/main/java/com/alibaba/testable/agent/handler/BaseClassHandler.java b/agent/src/main/java/com/alibaba/testable/agent/handler/BaseClassHandler.java index 374118c..ae59764 100644 --- a/agent/src/main/java/com/alibaba/testable/agent/handler/BaseClassHandler.java +++ b/agent/src/main/java/com/alibaba/testable/agent/handler/BaseClassHandler.java @@ -22,6 +22,10 @@ abstract public class BaseClassHandler implements Opcodes { return cw.toByteArray(); } + /** + * Transform class byte code + * @param cn original class node + */ abstract protected void transform(ClassNode cn); } diff --git a/agent/src/main/java/com/alibaba/testable/agent/model/MethodInfo.java b/agent/src/main/java/com/alibaba/testable/agent/model/MethodInfo.java index 78716c4..477914f 100644 --- a/agent/src/main/java/com/alibaba/testable/agent/model/MethodInfo.java +++ b/agent/src/main/java/com/alibaba/testable/agent/model/MethodInfo.java @@ -1,30 +1,18 @@ package com.alibaba.testable.agent.model; -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; - /** * @author flin */ public class MethodInfo { - private String name; - private String desc; + private final String name; + private final String desc; public MethodInfo(String name, String desc) { this.name = name; this.desc = desc; } - public static Set descSet(Collection methodInfos) { - Set set = new HashSet(); - for (MethodInfo m : methodInfos) { - set.add(m.desc); - } - return set; - } - public String getName() { return name; } diff --git a/agent/src/main/java/com/alibaba/testable/agent/transformer/TestableClassTransformer.java b/agent/src/main/java/com/alibaba/testable/agent/transformer/TestableClassTransformer.java index 98e7ccc..5875b3b 100644 --- a/agent/src/main/java/com/alibaba/testable/agent/transformer/TestableClassTransformer.java +++ b/agent/src/main/java/com/alibaba/testable/agent/transformer/TestableClassTransformer.java @@ -19,7 +19,7 @@ import java.util.Set; */ public class TestableClassTransformer implements ClassFileTransformer { - private static final Set loadedClassNames = new HashSet(); + private final Set loadedClassNames = new HashSet(); public byte[] transform(ClassLoader loader, String className, Class classBeingRedefined, ProtectionDomain protectionDomain, byte[] classFileBuffer) { diff --git a/core/src/main/java/com/alibaba/testable/core/accessor/PrivateAccessor.java b/core/src/main/java/com/alibaba/testable/core/accessor/PrivateAccessor.java index 90d9252..19f9959 100644 --- a/core/src/main/java/com/alibaba/testable/core/accessor/PrivateAccessor.java +++ b/core/src/main/java/com/alibaba/testable/core/accessor/PrivateAccessor.java @@ -33,14 +33,17 @@ public class PrivateAccessor { public static T invoke(Object ref, String method, Object... args) { try { - Class[] cls = TypeUtil.getClassesFromObjects(args); + Class[] cls = TypeUtil.getClassesFromObjects(args); Method declaredMethod = TypeUtil.getMethodByNameAndParameterTypes(ref.getClass().getDeclaredMethods(), method, cls); - declaredMethod.setAccessible(true); - return (T)declaredMethod.invoke(ref, args); + if (declaredMethod != null) { + declaredMethod.setAccessible(true); + return (T)declaredMethod.invoke(ref, args); + } } catch (Exception e) { e.printStackTrace(); return null; } + return null; } } diff --git a/core/src/main/java/com/alibaba/testable/core/translator/BaseTranslator.java b/core/src/main/java/com/alibaba/testable/core/translator/BaseTranslator.java index 8a8be87..197c4c3 100644 --- a/core/src/main/java/com/alibaba/testable/core/translator/BaseTranslator.java +++ b/core/src/main/java/com/alibaba/testable/core/translator/BaseTranslator.java @@ -17,9 +17,14 @@ public abstract class BaseTranslator extends TreeTranslator { } return List.from(es); } - return null; + return List.nil(); } + /** + * Exchange private method invoke with private accessor + * @param expr original expression + * @return exchanged expression + */ protected abstract JCExpression checkAndExchange(JCExpression expr); }