--- /dev/null
+package p;
+public class B {
+}
--- /dev/null
+package p;
+import q.Asp;
+import p.B;
+
+public class Code {
+ public void foo() throws IllegalAccessException {
+ throw new IllegalAccessException();
+ }
+}
--- /dev/null
+package q;
+import p.Code;
+
+public aspect Asp {
+ static int I = 5;
+//before():staticinitialization(Code){}
+}
+
+
--- /dev/null
+package p;
+
+import q.Asp;
+import p.B;
+
+public class Code {
+ public void foo() throws IllegalAccessException {
+ throw new IllegalAccessException();
+ }
+}
--- /dev/null
+package x;
+
+import java.util.ArrayList;
+
+public aspect X {
+// before(): within(!X) {}
+declare soft : IllegalAccessException : execution( * *(..) );
+
+}