You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Iffy2.java 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import java.util.*;
  2. import org.aspectj.lang.annotation.*;
  3. @Aspect
  4. class Iffy2 {
  5. @Before("execution(!void *(..))")
  6. public void advice1() {}
  7. @Before("execution(!void[] *(..))")
  8. public void advice2() {}
  9. @Before("execution(!void *(..))")
  10. public void advice3() {}
  11. @Before("execution(*..Collection[] *(..))")
  12. public void advice4() {}
  13. @Before("execution(java.util.Collection<?>[] *(..))")
  14. public void advice5() {}
  15. /**
  16. * TODO: This pointcut is not parsed correctly. Obviously, the combination of
  17. * '*' and '&lt;?&gt;' leads to an AJ core dump with this error message:
  18. * <p>
  19. * <code>
  20. * org.aspectj.weaver.BCException: malformed org.aspectj.weaver.PointcutDeclaration attribute (length:219)
  21. * org.aspectj.weaver.BCException: Bad type signature *
  22. * at org.aspectj.weaver.AjAttribute.read(AjAttribute.java:137)
  23. * at org.aspectj.weaver.bcel.Utility.readAjAttributes(Utility.java:102)
  24. * at org.aspectj.weaver.bcel.BcelMethod.unpackAjAttributes(BcelMethod.java:197)
  25. * at org.aspectj.weaver.bcel.BcelMethod.&lt;init&gt;(BcelMethod.java:91)
  26. * at org.aspectj.weaver.bcel.BcelObjectType.getDeclaredMethods(BcelObjectType.java:290)
  27. * at org.aspectj.weaver.ReferenceType.getDeclaredMethods(ReferenceType.java:870)
  28. * at org.aspectj.weaver.ResolvedType.getDeclaredAdvice(ResolvedType.java:1028)
  29. * at org.aspectj.weaver.ResolvedType.getDeclaredShadowMungers(ResolvedType.java:1068)
  30. * at org.aspectj.weaver.ResolvedType.collectShadowMungers(ResolvedType.java:868)
  31. * at org.aspectj.weaver.ResolvedType.collectCrosscuttingMembers(ResolvedType.java:794)
  32. * at org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect(CrosscuttingMembersSet.java:112)
  33. * at org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect(CrosscuttingMembersSet.java:67)
  34. * at org.aspectj.weaver.bcel.BcelWeaver.prepareForWeave(BcelWeaver.java:512)
  35. * </code>
  36. */
  37. //@Before("execution(*..Collection<?>[] *(..))")
  38. public void advice6() {}
  39. public Collection<?>[] getCollectionArray() {
  40. return null;
  41. }
  42. }