aboutsummaryrefslogtreecommitdiffstats
path: root/tests/compatibility
diff options
context:
space:
mode:
authoraclement <aclement>2005-11-30 12:11:03 +0000
committeraclement <aclement>2005-11-30 12:11:03 +0000
commitfcb16b97f4c2ca11e3f02b5e2b396932764b010d (patch)
tree95d28d6c8f7e78c2f93b4709f2e4bfd3693eb342 /tests/compatibility
parentc88e6bc262b9ec81625c28071989cc59862cf5e4 (diff)
downloadaspectj-fcb16b97f4c2ca11e3f02b5e2b396932764b010d.tar.gz
aspectj-fcb16b97f4c2ca11e3f02b5e2b396932764b010d.zip
More fixes for 116679: now copes with the enclosingSP type that we introduced for 1.5
Diffstat (limited to 'tests/compatibility')
-rw-r--r--tests/compatibility/case1/Simple.java (renamed from tests/compatibility/Simple.java)0
-rw-r--r--tests/compatibility/case2/A.java20
-rw-r--r--tests/compatibility/case2/TrackingErrors.aj86
3 files changed, 106 insertions, 0 deletions
diff --git a/tests/compatibility/Simple.java b/tests/compatibility/case1/Simple.java
index 72fec1886..72fec1886 100644
--- a/tests/compatibility/Simple.java
+++ b/tests/compatibility/case1/Simple.java
diff --git a/tests/compatibility/case2/A.java b/tests/compatibility/case2/A.java
new file mode 100644
index 000000000..e3acbb4bd
--- /dev/null
+++ b/tests/compatibility/case2/A.java
@@ -0,0 +1,20 @@
+public class A {
+ public static void main(String []argv) {
+ try {
+ new A().foo();
+ } catch (Exception e) {
+ }
+ }
+
+ public void foo() {
+ try {
+ } catch (Exception e) {
+ }
+ }
+}
+
+
+aspect ComplexSub extends TrackingErrors {
+ public pointcut errorScope(): within(A);
+}
+
diff --git a/tests/compatibility/case2/TrackingErrors.aj b/tests/compatibility/case2/TrackingErrors.aj
new file mode 100644
index 000000000..42659de6c
--- /dev/null
+++ b/tests/compatibility/case2/TrackingErrors.aj
@@ -0,0 +1,86 @@
+import org.aspectj.lang.*;
+
+import org.aspectj.lang.JoinPoint;
+
+public abstract aspect TrackingErrors {
+
+ protected abstract pointcut errorScope ();
+
+ private pointcut staticContext () : !this(Object);
+ private pointcut nonStaticContext (Object obj) : this(obj);
+ private pointcut caughtThrowable (Throwable th) : handler(Throwable+)
+ && args(th);
+
+
+
+ private pointcut excluded () : within(TrackingErrors+);
+
+ before (Throwable th) : caughtThrowable(th) && errorScope() &&
+ !excluded() && staticContext() {
+
+ processStaticTrackingErrors(th,thisJoinPointStaticPart,thisEnclosingJoinPointStaticPart);
+ }
+
+ before (Throwable th, Object obj) : caughtThrowable(th) && errorScope()
+ && !excluded() && nonStaticContext(obj) {
+
+ processNonStaticTrackingErrors(th,obj,thisJoinPointStaticPart,thisEnclosingJoinPointStaticPart);
+ }
+
+ protected void processStaticTrackingErrors (Throwable th,
+ JoinPoint.StaticPart tjp, JoinPoint.StaticPart ejp) {}
+
+ protected void processNonStaticTrackingErrors (Throwable th, Object obj,
+ JoinPoint.StaticPart tjp, JoinPoint.StaticPart ejp) {}
+
+ protected String getSourceId (JoinPoint.StaticPart ejp) {
+ String typeName =
+ ejp.getSignature().getDeclaringTypeName();
+ String name = ejp.getSignature().getName();
+ return typeName + "." + name;
+ }
+
+ protected String getProbeId (JoinPoint.StaticPart tjp) {
+ String sourceLocation =
+ tjp.getSourceLocation().toString();
+ return sourceLocation;
+ }
+
+}
+/*public abstract aspect Complex {
+
+ protected abstract pointcut scope ();
+
+ private pointcut staticContext () : !this(Object);
+ private pointcut nonStaticContext (Object obj) : this(obj);
+ private pointcut caughtThrowable (Throwable th) : handler(Throwable+) && args(th);
+
+ private pointcut excluded () : within(Complex+);
+
+ before (Throwable th) : caughtThrowable(th) && scope() && !excluded() && staticContext() {
+ processStaticData(th,thisJoinPointStaticPart,thisEnclosingJoinPointStaticPart);
+ }
+
+ before (Throwable th, Object obj) : caughtThrowable(th) && scope() && !excluded() && nonStaticContext(obj) {
+ processNonStaticData(th,obj,thisJoinPointStaticPart,thisEnclosingJoinPointStaticPart);
+ }
+
+ private void processStaticData (Throwable th, JoinPoint.StaticPart tjp, JoinPoint.StaticPart ejp) {
+ }
+
+ private void processNonStaticData (Throwable th, Object obj, JoinPoint.StaticPart tjp, JoinPoint.StaticPart ejp) {
+ }
+
+ protected String getSourceId (JoinPoint.StaticPart ejp) {
+ String typeName = ejp.getSignature().getDeclaringTypeName();
+ String name = ejp.getSignature().getName();
+ return typeName + "." + name;
+ }
+
+ protected String getProbeId (JoinPoint.StaticPart tjp) {
+ String sourceLocation = String.valueOf(tjp.getSourceLocation().getLine());
+ return sourceLocation;
+ }
+
+}
+*/