summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java11
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;
}