diff options
author | Alexander Kriegisch <Alexander@Kriegisch.name> | 2023-01-15 14:18:32 +0100 |
---|---|---|
committer | Alexander Kriegisch <Alexander@Kriegisch.name> | 2023-01-15 14:41:51 +0100 |
commit | 53837367b0f04a20aab530741ea7a24a42e309e5 (patch) | |
tree | 447dd9f9013acf229039468305fad6e494edcce1 | |
parent | 43cb1e2fc4dc127c39e550bdcd2efaf84c4b7a0f (diff) | |
download | aspectj-53837367b0f04a20aab530741ea7a24a42e309e5.tar.gz aspectj-53837367b0f04a20aab530741ea7a24a42e309e5.zip |
Comment on newly pointcut parsing found problem in test class
A pointcut like
execution(*..Collection<?>[] *(..))
leads to an AJ core dump, which is something I noticed while fixing a
test in the previous commit. I am going to create a new issue for it and
link to this commit later.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
-rw-r--r-- | tests/bugs165/pr272233/Iffy2.java | 25 | ||||
-rw-r--r-- | tests/src/test/resources/org/aspectj/systemtest/ajc165/ajc165.xml | 2 |
2 files changed, 27 insertions, 0 deletions
diff --git a/tests/bugs165/pr272233/Iffy2.java b/tests/bugs165/pr272233/Iffy2.java index 99dd10935..2245f7d8d 100644 --- a/tests/bugs165/pr272233/Iffy2.java +++ b/tests/bugs165/pr272233/Iffy2.java @@ -19,6 +19,31 @@ class Iffy2 { @Before("execution(java.util.Collection<?>[] *(..))") public void advice5() {} + /** + * TODO: This pointcut is not parsed correctly. Obviously, the combination of + * '*' and '<?>' leads to an AJ core dump with this error message: + * <p> + * <code> + * org.aspectj.weaver.BCException: malformed org.aspectj.weaver.PointcutDeclaration attribute (length:219) + * org.aspectj.weaver.BCException: Bad type signature * + * at org.aspectj.weaver.AjAttribute.read(AjAttribute.java:137) + * at org.aspectj.weaver.bcel.Utility.readAjAttributes(Utility.java:102) + * at org.aspectj.weaver.bcel.BcelMethod.unpackAjAttributes(BcelMethod.java:197) + * at org.aspectj.weaver.bcel.BcelMethod.<init>(BcelMethod.java:91) + * at org.aspectj.weaver.bcel.BcelObjectType.getDeclaredMethods(BcelObjectType.java:290) + * at org.aspectj.weaver.ReferenceType.getDeclaredMethods(ReferenceType.java:870) + * at org.aspectj.weaver.ResolvedType.getDeclaredAdvice(ResolvedType.java:1028) + * at org.aspectj.weaver.ResolvedType.getDeclaredShadowMungers(ResolvedType.java:1068) + * at org.aspectj.weaver.ResolvedType.collectShadowMungers(ResolvedType.java:868) + * at org.aspectj.weaver.ResolvedType.collectCrosscuttingMembers(ResolvedType.java:794) + * at org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect(CrosscuttingMembersSet.java:112) + * at org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect(CrosscuttingMembersSet.java:67) + * at org.aspectj.weaver.bcel.BcelWeaver.prepareForWeave(BcelWeaver.java:512) + * </code> + */ + //@Before("execution(*..Collection<?>[] *(..))") + public void advice6() {} + public Collection<?>[] getCollectionArray() { return null; } diff --git a/tests/src/test/resources/org/aspectj/systemtest/ajc165/ajc165.xml b/tests/src/test/resources/org/aspectj/systemtest/ajc165/ajc165.xml index e1258bdfb..7d879705f 100644 --- a/tests/src/test/resources/org/aspectj/systemtest/ajc165/ajc165.xml +++ b/tests/src/test/resources/org/aspectj/systemtest/ajc165/ajc165.xml @@ -83,6 +83,8 @@ <message kind="weave" text="advised by before advice from 'Iffy2' (Iffy2.java:14)"/> <message kind="weave" text="advised by before advice from 'Iffy2' (Iffy2.java:17)"/> <message kind="weave" text="advised by before advice from 'Iffy2' (Iffy2.java:20)"/> + <!-- TODO: Activate 'Iffy2.advice6()' pointcut after pointcut parsing problem has been fixed. --> + <!--<message kind="weave" text="advised by before advice from 'Iffy2' (Iffy2.java:XX)"/>--> </compile> </ajc-test> |