diff options
Diffstat (limited to 'tests/features152/synchronization/ThisJoinPointLock.java')
-rw-r--r-- | tests/features152/synchronization/ThisJoinPointLock.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/features152/synchronization/ThisJoinPointLock.java b/tests/features152/synchronization/ThisJoinPointLock.java new file mode 100644 index 000000000..ed5376a79 --- /dev/null +++ b/tests/features152/synchronization/ThisJoinPointLock.java @@ -0,0 +1,48 @@ +import org.aspectj.lang.reflect.*; + +aspect TJPAspect { + before(): withincode(void ThisJoinPointLock.nonStaticMethod()) { + if (thisJoinPoint.getSignature() instanceof LockSignature) { + System.err.println("match.toString(): "+thisJoinPoint.toString()); + System.err.println("match.toShortString(): "+thisJoinPoint.toShortString()); + System.err.println("match.toLongString(): "+thisJoinPoint.toLongString()); + } + + // SHORT => shorttypenames, no args, no throws, no modifiers, short type names + // MIDDLE=> args included + // LONG => modifiers included + } + +// before(): withincode(void ThisJoinPointLock.nonStaticMethod()) { +// if (thisJoinPoint.getSignature() instanceof MethodSignature) { +// System.err.println("match.toString(): "+thisJoinPoint.toString()); +// System.err.println("match.toShortString(): "+thisJoinPoint.toShortString()); +// System.err.println("match.toLongString(): "+thisJoinPoint.toLongString()); +// } +// +// // SHORT => shorttypenames, no args, no throws, no modifiers, short type names +// // MIDDLE=> args included +// // LONG => modifiers included +// } + +} + +public class ThisJoinPointLock { + public static void main(String[] args) { + ThisJoinPointLock b = new ThisJoinPointLock(); + b.nonStaticMethod(); + b.staticMethod(); + } + + public void nonStaticMethod() { + synchronized (this) { + staticMethod(); + } + } + + public void staticMethod() { + synchronized (ThisJoinPointLock.class) { + } + } + +} |