import org.aspectj.testing.Tester; public class NotAndPointcut { static String str = ""; public static void main(String args[]){ new NotAndPointcut().showBug(); Tester.checkEqual(str, "ran", "advice didn't run"); } public void showBug(){ } } aspect BugInPCD { pointcut p(): execution(* NotAndPointcut.showBug(..)) && ! ( target(NotAndPointcut) && call(* NotAndPointcut.*(..))); before(): p(){ NotAndPointcut.str += "ran"; } }