--- /dev/null
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+
+public class Program {
+ public static void main(String[] args) {
+ new Program().b();
+ new Program().c();
+ new Program().d();
+ }
+
+ // ... that does something ...
+ public synchronized void b() {
+ System.out.println("hello from b()");
+ }
+
+ // ... that includes try/catch ...
+ public synchronized void c() {
+ try {
+ File f = new File("fred");
+ FileInputStream fis = new FileInputStream(f);
+ } catch (IOException ioe) {
+ System.out.println("bang in c()");
+ }
+ }
+
+ // ... with nested synchronized blocks ...
+ public synchronized void d() {
+ System.out.println("hello from d()");
+ synchronized (new String()) {
+ System.out.println("hello from block in d()");
+ }
+ }
+
+}
--- /dev/null
+<aspectj>
+ <aspects>
+ <concrete-aspect name="G8"
+ extends="CaptureLock">
+
+ <pointcut name="lockPC" expression="(within(*) AND (lock() || unlock()))" />
+
+ </concrete-aspect>
+ </aspects>
+
+ <weaver options="-verbose -showWeaveInfo -Xjoinpoints:synchronization"/>
+</aspectj>