@@ -0,0 +1,31 @@ | |||
/******************************************************************************* | |||
* Copyright (c) 2005 Contributors. | |||
* All rights reserved. | |||
* This program and the accompanying materials are made available | |||
* under the terms of the Eclipse Public License v1.0 | |||
* which accompanies this distribution and is available at | |||
* http://eclipse.org/legal/epl-v10.html | |||
* | |||
* Contributors: | |||
* Alexandre Vasseur initial implementation | |||
*******************************************************************************/ | |||
package ataspectj.bugs; | |||
import org.aspectj.lang.annotation.Aspect; | |||
import org.aspectj.lang.annotation.Pointcut; | |||
import org.aspectj.lang.annotation.Before; | |||
/** | |||
* @author <a href="mailto:alex AT gnilux DOT com">Alexandre Vasseur</a> | |||
*/ | |||
@Aspect | |||
public class AbstractAspectNPEChild extends AbstractAspectNPEParent { | |||
@Pointcut("execution(* ataspectj.bugs.AbstractAspectNPEParent.main(..))") | |||
void method(){}; | |||
@Before("method()") | |||
public void test(){ | |||
} | |||
} |
@@ -0,0 +1,28 @@ | |||
/******************************************************************************* | |||
* Copyright (c) 2005 Contributors. | |||
* All rights reserved. | |||
* This program and the accompanying materials are made available | |||
* under the terms of the Eclipse Public License v1.0 | |||
* which accompanies this distribution and is available at | |||
* http://eclipse.org/legal/epl-v10.html | |||
* | |||
* Contributors: | |||
* Alexandre Vasseur initial implementation | |||
*******************************************************************************/ | |||
package ataspectj.bugs; | |||
import org.aspectj.lang.annotation.Pointcut; | |||
import org.aspectj.lang.annotation.Aspect; | |||
/** | |||
* @author <a href="mailto:alex AT gnilux DOT com">Alexandre Vasseur</a> | |||
*/ | |||
@Aspect | |||
public abstract class AbstractAspectNPEParent { | |||
@Pointcut | |||
abstract void method();//NPE at AJC time | |||
public static void main(String args[]){ | |||
} | |||
} |
@@ -128,4 +128,9 @@ public class AtAjSyntaxTests extends XMLBasedAjcTestCase { | |||
public void testDeclareParentsImplements() { | |||
runTest("DeclareParentsImplements"); | |||
} | |||
} | |||
public void testAbstractAspectNPE() { | |||
runTest("AbstractAspectNPE"); | |||
} | |||
} |
@@ -166,4 +166,11 @@ | |||
<run class="ataspectj.DeclareParentsImplementsTest"/> | |||
</ajc-test> | |||
<ajc-test dir="java5/ataspectj" title="AbstractAspectNPE"> | |||
<compile files="ataspectj/bugs/AbstractAspectNPEParent.java,ataspectj/bugs/AbstractAspectNPEChild.java" | |||
options="-1.5 -showWeaveInfo"> | |||
<message kind="weave" text="Join point 'method-execution(void ataspectj.bugs.AbstractAspectNPEParent.main"/> | |||
</compile> | |||
</ajc-test> | |||
</suite> |