* @author <a href="mailto:alex AT gnilux DOT com">Alexandre Vasseur</a>
*/
public static class LazyResolvedPointcutDefinition extends ResolvedPointcutDefinition {
- private final Pointcut m_pointcutUnresolved;
+ private final Pointcut m_pointcutUnresolved; // null for abstract pointcut
private final IScope m_binding;
private Pointcut m_lazyPointcut = null;
}
public Pointcut getPointcut() {
- if (m_lazyPointcut == null) {
+ if (m_lazyPointcut == null && m_pointcutUnresolved != null) {
m_lazyPointcut = m_pointcutUnresolved.resolve(m_binding);
m_lazyPointcut.copyLocationFrom(m_pointcutUnresolved);
}
import org.aspectj.weaver.UnresolvedType;
import org.aspectj.weaver.World;
import org.aspectj.weaver.patterns.DeclareErrorOrWarning;
+import org.aspectj.weaver.patterns.Pointcut;
public class AsmRelationshipProvider {
ResolvedMember pcd = children[i];
if (pcd instanceof ResolvedPointcutDefinition) {
ResolvedPointcutDefinition rpcd = (ResolvedPointcutDefinition) pcd;
- ISourceLocation sLoc = rpcd.getPointcut().getSourceLocation();
+ Pointcut p = rpcd.getPointcut();
+ ISourceLocation sLoc = (p == null ? null : p.getSourceLocation());
if (sLoc == null) {
sLoc = rpcd.getSourceLocation();
}