Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Bug related to Annotations on constructors

looks like a bug - please raise it.

On 21/09/06, Paulo Alexandre Corigo Zenida <paulo.zenida@xxxxxxxx> wrote:
Hello all,

I have found something that I believe it is a bug related to
annotations on constructors. The code is the following:

public class A {

        @MyAnnotation
        public A() {
                new B();
        }

        @MyAnnotation
        public A(int i) {
                new B(i);
        }

        public static void main(String[] args) {
                new A();
                new A(1);
        }
}

public class B {

        @MyAnnotation
        public B() {

        }

        @MyAnnotation
        public B(int i) {

        }
}

@Target(ElementType.CONSTRUCTOR)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {

}

public aspect MyAspect {

        before() :
                call(@MyAnnotation *.new(..)) {
                System.out.println(thisJoinPoint);
        }
}

The result:

call(pt.iscte.ci.test.A())
call(pt.iscte.ci.test.A(int))

Why aren't the calls to B() and B(int) matched and shown in the output?
If I change the pointcut to call(*.new(..)), the output is the expected:

call(pt.iscte.ci.test.A())
call(pt.iscte.ci.test.B())
call(pt.iscte.ci.test.A(int))
call(pt.iscte.ci.test.B(int))

This is a bug, right?

Best regards,

Paulo Zenida

----------------------------------------------------------------
Mensagem enviada usando o IMP (Internet Messaging Program).


_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users



Back to the top