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 | |
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')
-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 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java | 3 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc150/ajc150.xml | 14 |
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"> |