I think you want args(p, ..) to match any number of arguments as long as the first one is a Level; args(p) will match exactly one argument of type Level.
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Glenn Farrow Sent: Tuesday, September 19, 2006 6:33 AM To: [email protected] Subject: [aspectj-users] Pointcut fails to match when arguments combinedwith ".." Observer the following pointcut and advice which is supposed to match all calls to Logger.log(..). Logger.log always takes a Level as the first parameter. However the advice never gets applied. pointcut logCall(Level p) : target(Logger) && args(p) && !within(LoggingAspect) && call(void log(..)); before(Level p) : logCall(p) { Errors.add(p); } If I revise the pointcut and advice as follows it does get applied. AspectJ seems to be getting confused when trying to use arguments and specifying additional optional arguments using wildcards. pointcut logCall() : target(Logger) && !within(LoggingAspect) && call(void(log(..)); before() : logCall() { dummy(); } What's the scoop? I've also tried the following and it doesn't match either: pointcut logCall(Level p) : target(Logger) && args(p) && !within(LoggingAspect) && call(void log(Level, ..)); before(Level p) : logCall(p) { Errors.add(p); } _______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users _______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
