--- /dev/null
+public aspect AddAnnotation {
+ declare @method : public int *do*(..) : @Anno;
+}
--- /dev/null
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Anno {
+ String level() default "debug";
+}
--- /dev/null
+public aspect InterceptTraceds {
+
+ before(Anno t) : execution(@Anno * *.*(..)) && @annotation(t) {
+ if (t != null) {
+ System.out.println("Executing " + thisJoinPoint + " on level " + t.level());
+ } else {
+ System.out.println("Annotation was null on " + thisJoinPoint);
+ }
+ }
+
+}
--- /dev/null
+public aspect MakeItd {
+ public int TestClass.doAnother() {
+ return 2;
+ }
+}
--- /dev/null
+public class TestClass {
+
+ public static void main(String[] args) {
+ TestClass tc = new TestClass();
+ tc.doAnother();
+ }
+
+}
--- /dev/null
+<aspectj>
+<aspects>
+ <aspect name="AddAnnotation"/>
+ <aspect name="MakeItd"/>
+ <aspect name="InterceptTraceds"/>
+</aspects>
+ <weaver options="-showWeaveInfo -verbose">
+ <dump within="*" beforeandafter="true"/>
+ </weaver>
+</aspectj>
+
runTest("munger cce");
}
+ public void testMungerCCE_288635_2() {
+ runTest("munger cce - 2");
+ }
+
public void testNPEonBadAspectDecl_286375() {
runTest("npe on bad aspect decl");
}
<run class="Main"/>
</ajc-test>
+ <ajc-test dir="bugs166/pr288635" title="munger cce - 2">
+ <compile files="AddAnnotation.java MakeItd.java InterceptTraceds.java TestClass.java Anno.java" options="-1.5 -XterminateAfterCompilation"/>
+ <run class="TestClass" ltw="aop1.xml">
+ <stdout>
+ <line text="Executing execution(int TestClass.doAnother()) on level debug"/>
+ </stdout>
+ </run>
+ </ajc-test>
+
<ajc-test dir="bugs166/pr288635" title="munger cce">
<compile files="org/tests/atann/AddAnnotations.aj org/tests/atann/AddITDDoMethod.aj org/tests/atann/InterceptTraceds.aj org/tests/atann/TestClass.java org/tests/atann/Traced.java" options="-1.5"/>
- <run class="org.tests.atann.TestClass"/>
+ <run class="org.tests.atann.TestClass">
+ <stdout>
+ <line text="Executing execution(String org.tests.atann.TestClass.doAnnotated()) on level debug"/>
+ <line text="Executing execution(int org.tests.atann.TestClass.doITDAnnotation()) on level debug"/>
+ <line text="Executing execution(int org.tests.atann.TestClass.doAnother()) on level debug"/>
+ </stdout>
+ </run>
</ajc-test>
<ajc-test dir="bugs166/pr286375" title="npe on bad aspect decl">