Browse Source

Add safeguards for And/Or/Not pattern node types

Affects *PointCut, *TypePattern, *AnnotationTypePattern.

Relates to #215.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
tags/V1_9_20
Alexander Kriegisch 1 year ago
parent
commit
53bb964c30

+ 4
- 2
org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/AndAnnotationTypePattern.java View File

@@ -130,8 +130,10 @@ public class AndAnnotationTypePattern extends AnnotationTypePattern {

public Object traverse(PatternNodeVisitor visitor, Object data) {
Object ret = accept(visitor, data);
left.traverse(visitor, ret);
right.traverse(visitor, ret);
if (this.left != null)
this.left.traverse(visitor, ret);
if (this.right != null)
this.right.traverse(visitor, ret);
return ret;
}


+ 4
- 2
org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/AndPointcut.java View File

@@ -131,8 +131,10 @@ public class AndPointcut extends Pointcut {

public Object traverse(PatternNodeVisitor visitor, Object data) {
Object ret = accept(visitor, data);
left.traverse(visitor, ret);
right.traverse(visitor, ret);
if (this.left != null)
this.left.traverse(visitor, ret);
if (this.right != null)
this.right.traverse(visitor, ret);
return ret;
}
}

+ 4
- 2
org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/AndTypePattern.java View File

@@ -195,8 +195,10 @@ public class AndTypePattern extends TypePattern {
@Override
public Object traverse(PatternNodeVisitor visitor, Object data) {
Object ret = accept(visitor, data);
left.traverse(visitor, ret);
right.traverse(visitor, ret);
if (this.left != null)
this.left.traverse(visitor, ret);
if (this.right != null)
this.right.traverse(visitor, ret);
return ret;
}


+ 2
- 1
org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/NotAnnotationTypePattern.java View File

@@ -126,7 +126,8 @@ public class NotAnnotationTypePattern extends AnnotationTypePattern {

public Object traverse(PatternNodeVisitor visitor, Object data) {
Object ret = accept(visitor, data);
negatedPattern.traverse(visitor, ret);
if (this.negatedPattern != null)
this.negatedPattern.traverse(visitor, ret);
return ret;
}


+ 2
- 1
org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/NotPointcut.java View File

@@ -133,7 +133,8 @@ public class NotPointcut extends Pointcut {
@Override
public Object traverse(PatternNodeVisitor visitor, Object data) {
Object ret = accept(visitor, data);
this.body.traverse(visitor, ret);
if (this.body != null)
this.body.traverse(visitor, ret);
return ret;
}


+ 2
- 1
org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/NotTypePattern.java View File

@@ -178,7 +178,8 @@ public class NotTypePattern extends TypePattern {
@Override
public Object traverse(PatternNodeVisitor visitor, Object data) {
Object ret = accept(visitor, data);
negatedPattern.traverse(visitor, ret);
if (this.negatedPattern != null)
this.negatedPattern.traverse(visitor, ret);
return ret;
}


+ 4
- 2
org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/OrAnnotationTypePattern.java View File

@@ -69,8 +69,10 @@ public class OrAnnotationTypePattern extends AnnotationTypePattern {

public Object traverse(PatternNodeVisitor visitor, Object data) {
Object ret = accept(visitor, data);
left.traverse(visitor, ret);
right.traverse(visitor, ret);
if (this.left != null)
this.left.traverse(visitor, ret);
if (this.right != null)
this.right.traverse(visitor, ret);
return ret;
}


+ 4
- 2
org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/OrPointcut.java View File

@@ -139,8 +139,10 @@ public class OrPointcut extends Pointcut {

public Object traverse(PatternNodeVisitor visitor, Object data) {
Object ret = accept(visitor, data);
left.traverse(visitor, ret);
right.traverse(visitor, ret);
if (this.left != null)
this.left.traverse(visitor, ret);
if (this.right != null)
this.right.traverse(visitor, ret);
return ret;
}
}

+ 4
- 2
org.aspectj.matcher/src/main/java/org/aspectj/weaver/patterns/OrTypePattern.java View File

@@ -190,8 +190,10 @@ public class OrTypePattern extends TypePattern {

public Object traverse(PatternNodeVisitor visitor, Object data) {
Object ret = accept(visitor, data);
left.traverse(visitor, ret);
right.traverse(visitor, ret);
if (this.left != null)
this.left.traverse(visitor, ret);
if (this.right != null)
this.right.traverse(visitor, ret);
return ret;
}


Loading…
Cancel
Save