]> source.dussan.org Git - aspectj.git/commitdiff
318237: diagnostics
authoraclement <aclement>
Thu, 28 Apr 2011 17:57:29 +0000 (17:57 +0000)
committeraclement <aclement>
Thu, 28 Apr 2011 17:57:29 +0000 (17:57 +0000)
weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java

index 222a4f2d19988b43a184349ef06c6ddc4d25a9eb..fcf61a085e7ddb5e3ff18242c7b39bb088d6a304 100644 (file)
@@ -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;
        }