[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] A strange NullPointerException

Hi all,

I ran into a problem which may be a compiler bug. The code below should reproduce the error. If class EnforcementApplier is removed and Enforcer is made concrete, no error occurs. If !cflow(within(Enforcer+)) is removed from the advice definition, again no error occurs. Any help would be appreciated.

Thanks a lot,

Manuel

A.java:

   package tests;

public class A {
void foo() {}
public static void main(String[] args) {
A a = new A();
a.foo(); // line 8
}
}


Enforcer.aj:

   package tests;

   public abstract aspect Enforcer {
       before(): !cflow(within(Enforcer+)) && execution(!static * *(..)) {
       }
   }

EnforcementApplier.aj:

   package tests;

   import tests.Enforcer;

   public aspect EnforcementApplier extends Enforcer {
   }

Using "Eclipse SDK Version: 3.2.2 Build id: M20070212-1330" and "Eclipse AspectJ Development Tools Version: 1.4.0 Build id: 20060629124300 AspectJ version: 1.5.2", the result is:

   Exception in thread "main" java.lang.NoClassDefFoundError:
   org/aspectj/lang/NoAspectBoundException
       at tests.A.foo(A.java)
       at tests.A.main(A.java:8)

Using "Eclipse SDK Version: 3.3.0 Build id: I20070323-1616" and "Eclipse AspectJ Development Tools xVersion: 1.5.0.200703300605 AspectJ version: 1.5.4.200701151324", the result is:

   Exception in thread "main" java.lang.ExceptionInInitializerError
       at tests.A.foo(A.java:4)
       at tests.A.main(A.java:8)
   Caused by: java.lang.NullPointerException
       at tests.Enforcer.<clinit>(Enforcer.aj:1)
       ... 2 more

The result was the same after updating AJDT to "Eclipse AspectJ Development Tools Version: 1.5.0.200705301038 AspectJ version: 1.5.4.200705211336"