소스 검색

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