diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/javassist/CtClass.java | 2 | ||||
-rw-r--r-- | src/main/javassist/CtClassType.java | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/main/javassist/CtClass.java b/src/main/javassist/CtClass.java index a96701b2..1b3b588b 100644 --- a/src/main/javassist/CtClass.java +++ b/src/main/javassist/CtClass.java @@ -249,6 +249,8 @@ public abstract class CtClass { void freeze() {} + /* Note: this method is overridden by CtClassType + */ void checkModify() throws RuntimeException { if (isFrozen()) throw new RuntimeException(getName() + " class is frozen"); diff --git a/src/main/javassist/CtClassType.java b/src/main/javassist/CtClassType.java index d5989406..a714094c 100644 --- a/src/main/javassist/CtClassType.java +++ b/src/main/javassist/CtClassType.java @@ -257,7 +257,14 @@ class CtClassType extends CtClass { void freeze() { wasFrozen = true; } void checkModify() throws RuntimeException { - super.checkModify(); + if (isFrozen()) { + String msg = getName() + " class is frozen"; + if (wasPruned) + msg += " and pruned"; + + throw new RuntimeException(msg); + } + wasChanged = true; } @@ -1079,6 +1086,8 @@ class CtClassType extends CtClass { } } + /* See also checkModified() + */ private void checkPruned(String method) { if (wasPruned) throw new RuntimeException(method + "(): " + getName() |