aboutsummaryrefslogtreecommitdiffstats
path: root/tests
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
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')
-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
-rw-r--r--tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java3
-rw-r--r--tests/src/org/aspectj/systemtest/ajc150/ajc150.xml14
5 files changed, 117 insertions, 6 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;
+ }
+
+}
+*/
diff --git a/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java b/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java
index 3fa9ff605..603cc05b3 100644
--- a/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java
+++ b/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java
@@ -48,7 +48,8 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
public void testCunningDeclareParents_pr92311() { runTest("cunning declare parents");}
public void testGenericITDsAndAbstractMethodError_pr102357() { runTest("generic itds and abstract method error");}
*/
- public void testGeneratingCodeForAnOldRuntime_pr116679() { runTest("generating code for a 1.2.1 runtime");}
+ public void testGeneratingCodeForAnOldRuntime_pr116679_1() { runTest("generating code for a 1.2.1 runtime - 1");}
+ public void testGeneratingCodeForAnOldRuntime_pr116679_2() { runTest("generating code for a 1.2.1 runtime - 2");}
public void testAtDeclareParents_pr117681() { runTest("at declare parents");}
public void testPrivilegeProblem_pr87525() { runTest("privilege problem with switch");}
diff --git a/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml b/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml
index 7cb13ac68..027648cf8 100644
--- a/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml
+++ b/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml
@@ -113,17 +113,21 @@
<run class="ReflectOnAjcCompiledPointcuts" classpath="../lib/bcel/bcel.jar"/>
</ajc-test>
- <ajc-test dir="compatibility" title="generating code for a 1.2.1 runtime">
- <compile files="Simple.java" options="-Xajruntimetarget:1.2"></compile>
+ <ajc-test dir="compatibility/case1" title="generating code for a 1.2.1 runtime - 1">
+ <compile files="Simple.java" options="-Xajruntimetarget:1.2"/>
<run class="Simple" classpath="../lib/aspectj/lib/aspectjrt121.jar"/>
</ajc-test>
-
+
+ <ajc-test dir="compatibility/case2" title="generating code for a 1.2.1 runtime - 2">
+ <compile files="TrackingErrors.aj,A.java" options="-Xajruntimetarget:1.2"/>
+ <run class="A" classpath="../lib/aspectj/lib/aspectjrt121.jar"/>
+ </ajc-test>
+
<ajc-test dir="java5/reflection" title="arg names in advice annotations">
<compile files="AdviceWithArgs.aj" options="-1.5"></compile>
<run class="AdviceWithArgs"/>
</ajc-test>
-
-
+
<ajc-test dir="java5/reflection" pr="114322" title="reflection on abstract ITDs (Billing example)">
<compile files="ReflectBilling.java,Billing.aj" options="-1.5"/>
<run class="ReflectBilling">