Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-users] Pointcut fails to match when arguments combinedwith ".."

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: aspectj-users-bounces@xxxxxxxxxxx
[mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of Glenn Farrow
Sent: Tuesday, September 19, 2006 6:33 AM
To: aspectj-users@xxxxxxxxxxx
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
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users



Back to the top