diff options
-rw-r--r-- | weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java b/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java index 222a4f2d1..fcf61a085 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java +++ b/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java @@ -256,9 +256,14 @@ public class BcelTypeMunger extends ConcreteTypeMunger { } private boolean mungeNewAnnotationOnType(BcelClassWeaver weaver, AnnotationOnTypeMunger munger) { - // FIXME asc this has already been done up front, need to do it here - // too? - weaver.getLazyClassGen().addAnnotation(((BcelAnnotation) munger.getNewAnnotation()).getBcelAnnotation()); + // FIXME asc this has already been done up front, need to do it here too? + try { + BcelAnnotation anno = (BcelAnnotation) munger.getNewAnnotation(); + weaver.getLazyClassGen().addAnnotation(anno.getBcelAnnotation()); + } catch (ClassCastException cce) { + throw new IllegalStateException("DiagnosticsFor318237: The typemunger "+munger+" contains an annotation of type "+ + munger.getNewAnnotation().getClass().getName()+" when it should be a BcelAnnotation",cce); + } return true; } |