Hi Andy

No problem, and yes, this is exactly what i want. I didn't know that it is 
possible to use an around advice with field get access. Thank you. What would 
be the pointcut for every field get access, regardless of the field type? I 
need to pass also the original value of the field, so i can change it in advice.

I think the expression would be:

get(@MyAnnotation * *.*)

but how do i pass original value?

Regards
Mirko

-----Ursprüngliche Nachricht-----
Von: [email protected] 
[mailto:[email protected]] Im Auftrag von Andy Clement
Gesendet: Freitag, 19. Oktober 2012 04:53
An: [email protected]
Betreff: Re: [aspectj-users] Intercepting field access and thread-safety

Hi,

Sorry for the late reply, we are all at Spring One 2GX.  How about:

public class Code {
  int i = 5;
  public static void main(String[] argv) {
    new Code().foo();
  }
  public void foo() {
    System.out.println(i);
  }
}

aspect X {
  int around(): get(int Code.i) {
    return 42;
  }
}

Does that do what you want?

Andy

On 16 October 2012 12:16, Sertic Mirko, Bedag <[email protected]> wrote:
> Hi there
>
> I'd like to know if it's possible to incercept a get field access using
> AspectJ and modify the returned value.
>
> Of course i could modify the field and set a new value using a before
> advice, but if the affected instance would be used in a multi threaded
> environment, this could lead to unwanted race conditions. So it is possible
> to intercept a field get access and return a defined value without modifying
> the original value of the field?
>
> Thanks a lot
>
> Mirko
>
>
> _______________________________________________
> 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
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to