Community
Participate
Working Groups
An issue you're no-doubt aware of: the "related location" for a declare error might not identify the concrete aspect that defined the pointcut at issue, so the user will have to hunt for it. public class Const { public static void main(String[] args) { } static abstract aspect A { protected abstract pointcut pc(); declare error: execution(* *(..)) && pc() : "error"; } // same join point, but you get the idea... static aspect B extends A { protected pointcut pc() : within(Const) && execution(static * *(..)); } static aspect C extends A { protected pointcut pc() : within(Const) && execution(public * *(..)); } }
This is addressed by an AspectJ enhancement report that's a high-priority on my list. As described there it will be resolved by adding a "concretized by" relationship to the ASM. *** This bug has been marked as a duplicate of 78615 ***