No, tried that too previously.  Same result.


Ron Bodkin wrote:
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

Reply via email to