Преглед на файлове

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

JustryDeng преди 5 години
родител
ревизия
246faa5b8c
променени са 1 файла, в които са добавени 4 реда и са изтрити 0 реда
  1. 4 0
      class-winter-core/src/main/java/winter/com/ideaaedi/classwinter/util/JavassistUtil.java

+ 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) {
                 // 当前类中的方法 && 非构造方法