Просмотр исходного кода

bug fix, 解决javassist CtClass冻结导致无法清空方法体的问题

JustryDeng 5 лет назад
Родитель
Сommit
246faa5b8c

+ 4 - 0
class-winter-core/src/main/java/winter/com/ideaaedi/classwinter/util/JavassistUtil.java

@@ -57,6 +57,10 @@ public final class JavassistUtil {
         CtClass ctClass;
         try {
             ctClass = classPool.getCtClass(className);
+            if (ctClass.isFrozen()) {
+                Logger.debug(JavassistUtil.class, "defrost class " + className);
+                ctClass.defrost();
+            }
             CtMethod[] methods = ctClass.getDeclaredMethods();
             for (CtMethod ctMethod : methods) {
                 // 当前类中的方法 && 非构造方法