I just looked at some test cases and we have this:
void around(Foo f): unlock() && args(f) {
System.err.println("around(Foo) lock: advice running at "
+thisJoinPoint.getSourceLocation());
proceed(f);
}
static class Foo {
public void nonstaticM() {
synchronized (this) {
System.err.println("non-static method running");
}
}
public static void staticM() {
synchronized (String.class) {
System.err.println("static method running");
}
}
}
So your second type of point cut should be OK, if the locks are occurring
on that type.
Andy
On 7 March 2014 04:45, Jonathan Mace <[email protected]> wrote:
> I'm trying to match all instances in my application where synchronization
> is used on a specific type. I would expect this could be written fairly
> easily as:
>
> after(Object o): args(mytypeexpression) && args(o) && lock() {
> System.out.println("args after lock " + o.toString());
> }
>
> or as
>
> after(MyType o): args(o) && lock() {
> System.out.println("args after lock " + o.toString());
> }
>
> however, neither of these work, even though o is accessible as an object
> of type MyType.
>
> Is this expected behaviour?
>
> Jon
>
> _______________________________________________
> 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