diff options
4 files changed, 112 insertions, 13 deletions
diff --git a/tests/bugs1919/github_24/ExactlyMatchingAspect.aj b/tests/bugs1919/github_24/ExactlyMatchingAspect.aj index 8a78394c3..a884d00fc 100644 --- a/tests/bugs1919/github_24/ExactlyMatchingAspect.aj +++ b/tests/bugs1919/github_24/ExactlyMatchingAspect.aj @@ -6,4 +6,20 @@ public aspect ExactlyMatchingAspect { after() : execution(public MaybeMissingClass[] MaybeMissingClass.*()) { System.out.println(thisJoinPoint); } + + after() : execution(public MaybeMissingClass[][] MaybeMissingClass.*()) { + System.out.println(thisJoinPoint); + } + + after() : execution(public int MaybeMissingClass.*()) { + System.out.println(thisJoinPoint); + } + + after() : execution(public int[] MaybeMissingClass.*()) { + System.out.println(thisJoinPoint); + } + + after() : execution(public int[][] MaybeMissingClass.*()) { + System.out.println(thisJoinPoint); + } } diff --git a/tests/bugs1919/github_24/FuzzilyMatchingAspect.aj b/tests/bugs1919/github_24/FuzzilyMatchingAspect.aj index 999282873..d7c32a70a 100644 --- a/tests/bugs1919/github_24/FuzzilyMatchingAspect.aj +++ b/tests/bugs1919/github_24/FuzzilyMatchingAspect.aj @@ -6,4 +6,20 @@ public aspect FuzzilyMatchingAspect { after() : execution(public MaybeMissing*[] MaybeMissing*.*()) { System.out.println(thisJoinPoint); } + + after() : execution(public MaybeMissing*[][] MaybeMissing*.*()) { + System.out.println(thisJoinPoint); + } + + after() : execution(public in* MaybeMissing*.*()) { + System.out.println(thisJoinPoint); + } + + after() : execution(public in*[] MaybeMissing*.*()) { + System.out.println(thisJoinPoint); + } + + after() : execution(public in*[][] MaybeMissing*.*()) { + System.out.println(thisJoinPoint); + } } diff --git a/tests/bugs1919/github_24/MaybeMissingClass.java b/tests/bugs1919/github_24/MaybeMissingClass.java index 3fa5fa274..17952583b 100644 --- a/tests/bugs1919/github_24/MaybeMissingClass.java +++ b/tests/bugs1919/github_24/MaybeMissingClass.java @@ -2,6 +2,10 @@ public class MaybeMissingClass { public static void main(String[] args) { f1(); f2(); + f3(); + f4(); + f5(); + f6(); } public static MaybeMissingClass f1() { @@ -13,4 +17,24 @@ public class MaybeMissingClass { System.out.println("MaybeMissingClass.f2"); return null; } + + public static MaybeMissingClass[][] f3() { + System.out.println("MaybeMissingClass.f3"); + return null; + } + + public static int f4() { + System.out.println("MaybeMissingClass.f4"); + return 0; + } + + public static int[] f5() { + System.out.println("MaybeMissingClass.f5"); + return new int[2]; + } + + public static int[][] f6() { + System.out.println("MaybeMissingClass.f6"); + return new int[2][2]; + } } diff --git a/tests/src/test/resources/org/aspectj/systemtest/ajc1919/ajc1919.xml b/tests/src/test/resources/org/aspectj/systemtest/ajc1919/ajc1919.xml index 67c0b6328..15f5d18d6 100644 --- a/tests/src/test/resources/org/aspectj/systemtest/ajc1919/ajc1919.xml +++ b/tests/src/test/resources/org/aspectj/systemtest/ajc1919/ajc1919.xml @@ -229,8 +229,12 @@ <ajc-test dir="bugs1919/github_24" vm="1.5" title="exact array type matching, aspect compiled together with target class"> <compile files="ExactlyMatchingAspect.aj MaybeMissingClass.java" options="-1.5 -showWeaveInfo"> <!-- Even before the bugfix, in this case weaving worked as expected --> - <message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())'"/> - <message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())'"/> + <message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())"/> + <message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())"/> + <message kind="weave" text="method-execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/> + <message kind="weave" text="method-execution(int MaybeMissingClass.f4())"/> + <message kind="weave" text="method-execution(int[] MaybeMissingClass.f5())"/> + <message kind="weave" text="method-execution(int[][] MaybeMissingClass.f6())"/> </compile> <run class="MaybeMissingClass"> <stdout> @@ -238,6 +242,14 @@ <line text="execution(MaybeMissingClass MaybeMissingClass.f1())"/> <line text="MaybeMissingClass.f2"/> <line text="execution(MaybeMissingClass[] MaybeMissingClass.f2())"/> + <line text="MaybeMissingClass.f3"/> + <line text="execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/> + <line text="MaybeMissingClass.f4"/> + <line text="execution(int MaybeMissingClass.f4())"/> + <line text="MaybeMissingClass.f5"/> + <line text="execution(int[] MaybeMissingClass.f5())"/> + <line text="MaybeMissingClass.f6"/> + <line text="execution(int[][] MaybeMissingClass.f6())"/> </stdout> </run> </ajc-test> @@ -249,16 +261,16 @@ <ajc-test dir="bugs1919/github_24" vm="1.5" title="exact array type matching, aspect compiled separately from target class"> <compile files="ExactlyMatchingAspect.aj" options="-1.5 -showWeaveInfo" outjar="aspect.jar"> <message kind="warning" text="no match for this type name: MaybeMissingClass [Xlint:invalidAbsoluteTypeName]"/> - <message kind="warning" text="no match for this type name: MaybeMissingClass [Xlint:invalidAbsoluteTypeName]"/> - <message kind="warning" text="no match for this type name: MaybeMissingClass [Xlint:invalidAbsoluteTypeName]"/> - <message kind="warning" text="no match for this type name: MaybeMissingClass [Xlint:invalidAbsoluteTypeName]"/> - <message kind="warning" text="advice defined in ExactlyMatchingAspect has not been applied [Xlint:adviceDidNotMatch]"/> <message kind="warning" text="advice defined in ExactlyMatchingAspect has not been applied [Xlint:adviceDidNotMatch]"/> </compile> <compile files="MaybeMissingClass.java" options="-1.5 -showWeaveInfo" aspectpath="aspect.jar"> <!-- Before the bugfix, f1 would be woven twice, f2 not at all--> - <message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())'"/> - <message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())'"/> + <message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())"/> + <message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())"/> + <message kind="weave" text="method-execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/> + <message kind="weave" text="method-execution(int MaybeMissingClass.f4())"/> + <message kind="weave" text="method-execution(int[] MaybeMissingClass.f5())"/> + <message kind="weave" text="method-execution(int[][] MaybeMissingClass.f6())"/> </compile> <run class="MaybeMissingClass" classpath="aspect.jar"> <stdout> @@ -266,6 +278,14 @@ <line text="execution(MaybeMissingClass MaybeMissingClass.f1())"/> <line text="MaybeMissingClass.f2"/> <line text="execution(MaybeMissingClass[] MaybeMissingClass.f2())"/> + <line text="MaybeMissingClass.f3"/> + <line text="execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/> + <line text="MaybeMissingClass.f4"/> + <line text="execution(int MaybeMissingClass.f4())"/> + <line text="MaybeMissingClass.f5"/> + <line text="execution(int[] MaybeMissingClass.f5())"/> + <line text="MaybeMissingClass.f6"/> + <line text="execution(int[][] MaybeMissingClass.f6())"/> </stdout> </run> </ajc-test> @@ -277,8 +297,12 @@ <ajc-test dir="bugs1919/github_24" vm="1.5" title="fuzzy array type matching, aspect compiled together with target class"> <compile files="FuzzilyMatchingAspect.aj MaybeMissingClass.java" options="-1.5 -showWeaveInfo"> <!-- Before the bugfix, both f1 and f2 would be woven twice --> - <message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())'"/> - <message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())'"/> + <message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())"/> + <message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())"/> + <message kind="weave" text="method-execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/> + <message kind="weave" text="method-execution(int MaybeMissingClass.f4())"/> + <message kind="weave" text="method-execution(int[] MaybeMissingClass.f5())"/> + <message kind="weave" text="method-execution(int[][] MaybeMissingClass.f6())"/> </compile> <run class="MaybeMissingClass"> <stdout> @@ -286,6 +310,14 @@ <line text="execution(MaybeMissingClass MaybeMissingClass.f1())"/> <line text="MaybeMissingClass.f2"/> <line text="execution(MaybeMissingClass[] MaybeMissingClass.f2())"/> + <line text="MaybeMissingClass.f3"/> + <line text="execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/> + <line text="MaybeMissingClass.f4"/> + <line text="execution(int MaybeMissingClass.f4())"/> + <line text="MaybeMissingClass.f5"/> + <line text="execution(int[] MaybeMissingClass.f5())"/> + <line text="MaybeMissingClass.f6"/> + <line text="execution(int[][] MaybeMissingClass.f6())"/> </stdout> </run> </ajc-test> @@ -297,12 +329,15 @@ <ajc-test dir="bugs1919/github_24" vm="1.5" title="fuzzy array type matching, aspect compiled separately from target class"> <compile files="FuzzilyMatchingAspect.aj" options="-1.5 -showWeaveInfo" outjar="aspect.jar"> <message kind="warning" text="advice defined in FuzzilyMatchingAspect has not been applied [Xlint:adviceDidNotMatch]"/> - <message kind="warning" text="advice defined in FuzzilyMatchingAspect has not been applied [Xlint:adviceDidNotMatch]"/> </compile> <compile files="MaybeMissingClass.java" options="-1.5 -showWeaveInfo" aspectpath="aspect.jar"> <!-- Before the bugfix, both f1 and f2 would be woven twice --> - <message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())'"/> - <message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())'"/> + <message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())"/> + <message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())"/> + <message kind="weave" text="method-execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/> + <message kind="weave" text="method-execution(int MaybeMissingClass.f4())"/> + <message kind="weave" text="method-execution(int[] MaybeMissingClass.f5())"/> + <message kind="weave" text="method-execution(int[][] MaybeMissingClass.f6())"/> </compile> <run class="MaybeMissingClass" classpath="aspect.jar"> <stdout> @@ -310,6 +345,14 @@ <line text="execution(MaybeMissingClass MaybeMissingClass.f1())"/> <line text="MaybeMissingClass.f2"/> <line text="execution(MaybeMissingClass[] MaybeMissingClass.f2())"/> + <line text="MaybeMissingClass.f3"/> + <line text="execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/> + <line text="MaybeMissingClass.f4"/> + <line text="execution(int MaybeMissingClass.f4())"/> + <line text="MaybeMissingClass.f5"/> + <line text="execution(int[] MaybeMissingClass.f5())"/> + <line text="MaybeMissingClass.f6"/> + <line text="execution(int[][] MaybeMissingClass.f6())"/> </stdout> </run> </ajc-test> |