diff options
author | aclement <aclement> | 2005-11-30 12:11:03 +0000 |
---|---|---|
committer | aclement <aclement> | 2005-11-30 12:11:03 +0000 |
commit | fcb16b97f4c2ca11e3f02b5e2b396932764b010d (patch) | |
tree | 95d28d6c8f7e78c2f93b4709f2e4bfd3693eb342 /tests/compatibility | |
parent | c88e6bc262b9ec81625c28071989cc59862cf5e4 (diff) | |
download | aspectj-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.java | 20 | ||||
-rw-r--r-- | tests/compatibility/case2/TrackingErrors.aj | 86 |
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; + } + +} +*/ |