Skip to main content

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

I got NullPointerException when

. placing abstract aspcet(1) that has abstract pointcut and advice in jar file
. overriding abstract pointcut using the joinpoint that has cflow in the
aspect(2)

here is the part of stack trace:
[iajc] java.lang.NullPointerException
[iajc]  at
org.aspectj.weaver.patterns.CflowPointcut.concretize1(CflowPointcut.java:126)
[iajc]  at
org.aspectj.weaver.patterns.AndPointcut.concretize1(AndPointcut.java:88)
[iajc]  at
org.aspectj.weaver.patterns.ReferencePointcut.concretize1(ReferencePointcut.java:270)
[iajc]  at org.aspectj.weaver.patterns.Pointcut.concretize(Pointcut.java:127)

-- (1) AbstractAspect.aj --
public abstract aspect AbstractAspect{
  public abstract pointcut directCall();
  before(): directCall(){
    System.out.println("direct");
  }
}

-- TestAspect.aj --
public aspect TestAspect extends AbstractAspect{
  public pointcut directCall():
    execution(void Test.doSayHello(..))
    && cflow(execution(void Test.direct(..)))
  ;
}

-- Test.java --
public class Test{
  public static void main(String[] arguments){
    Test test = new Test();
    test.sayHello();
    test.doSayHello();
  }

  public void sayHello(){
    doSayHello();
  }

  public void doSayHello(){
    System.out.println("hello.");
  }
}

-- a part of build.xml --
  <target name="compile" depends="distabstractaspect">
    <iajc
      srcdir="src"
      destDir="${build}"
      classpath="aspectjrt.jar"
      aspectPath="${dist}/abstractaspect.jar"
    />
  </target>

----

When not placing aspect(1) in jar or not using cflow in the aspect(2),
I didn't get NullPointerException.
I used JDK1.4.1_02 on Windows2000(ja) system.


NAKAGUCHI Takao
takao-n@xxxxxxxxxxxxxxx


Back to the top