1234567891011121314151617181920212223242526272829303132333435363738 |
-
- import org.aspectj.testing.Tester;
- import org.aspectj.lang.*;
- import org.aspectj.lang.reflect.*;
-
- /** @testcase PR#901 IncompatibleClassChangeError bug */
- public class IncompatibleClassChangeErrorBug {
-
- public static void main(String[] args) {
- Tester.expectEvent("printed");
- method1();
- Tester.checkAllEvents();
- }
- public static void method1() {
- }
- }
-
- aspect JoinpointTestAspect {
- before() : call(static void method1()) {
- printArgs(thisJoinPoint);
-
- // This call is required to reproduce the bug...
- printStaticInfo(thisJoinPointStaticPart);
- }
-
-
- private void printArgs(JoinPoint joinPoint) {
- Object[] args = joinPoint.getArgs();
- // While the original code had a for() loop to print arguments
- // bug can be seen without it...
- }
-
- private void printStaticInfo(JoinPoint.StaticPart
- joinPointStaticPart) {
- Tester.check(null != joinPointStaticPart, "null parm");
- Tester.event("printed");
- }
- }
|