[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| [aspectj-users] Behavior of wultiple proceeds on the same jp but different argument values | 
Hi all, 
 I came across some weird behavior. I have an aspect with one pcd and a 
 bunch of around advice on that pcd. e.g. 
 aspect Test { pointcut pc(A n, A current): call(* A.method(A)) && args(n)
                                  && target(current);
                                  
          void around(A n, A current):pc(n,current){ 
             System.out.println("around 1");
             System.out.println("advice first arg "+ n.x);
             System.out.println("advice second arg "+ current.x);
             System.out.println("");
             proceed(current,n);
             }
  // the same advice as the one above is copied over each time reversing 
  //the values passed to proceed e.g. proceed(n,current) everytime 
  My A object has an integer field x. I have the receiver with x=0 and the 
  argument to the method "method(A)" with x = 1. 
  I expected to see a sequence of interleaving 0's and 1's. However I only 
  see the switch after 2 advice 
  I get 1,0,0,1,0,1,1,0,1,0,0,1,0,1 ... 
  So the switch happens after 2 pieces of advice get to execute. Is this 
  correct ? 
  Thanks
  -- Theo
  PS. The code is attached 
Attachment:
madvice.tar.gz
Description: Binary data