diff --git a/pom.xml b/pom.xml
index 8a9c1c510..d15f9dabf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1127,7 +1127,6 @@
.*.checks.metrics.AbstractClassCouplingCheck8797
.*.checks.metrics.AbstractClassCouplingCheck\$.*78100
- .*.checks.metrics.BooleanExpressionComplexityCheck7480
.*.checks.regexp.CommentSuppressor75100
.*.checks.regexp.DetectorOptions10096
diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheck.java
index 4e98527d1..8be250eee 100644
--- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheck.java
+++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheck.java
@@ -139,7 +139,7 @@ public final class BooleanExpressionComplexityCheck extends Check {
context.visitBooleanOperator();
break;
default:
- throw new IllegalStateException(ast.toString());
+ throw new IllegalArgumentException("Unknown type: " + ast);
}
}
@@ -186,7 +186,8 @@ public final class BooleanExpressionComplexityCheck extends Check {
*/
private void visitMethodDef(DetailAST ast) {
contextStack.push(context);
- context = new Context(!CheckUtils.isEqualsMethod(ast));
+ final boolean check = !CheckUtils.isEqualsMethod(ast);
+ context = new Context(check);
}
/** Removes old context. */
@@ -197,7 +198,7 @@ public final class BooleanExpressionComplexityCheck extends Check {
/** Creates and pushes new context. */
private void visitExpr() {
contextStack.push(context);
- context = new Context(context == null || context.isChecking());
+ context = new Context(context.isChecking());
}
/**
diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheckTest.java
index 4f4bdab03..d6479c90b 100644
--- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheckTest.java
+++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/BooleanExpressionComplexityCheckTest.java
@@ -25,8 +25,12 @@ import java.io.File;
import org.junit.Test;
+import antlr.CommonHiddenStreamToken;
+
import com.puppycrawl.tools.checkstyle.BaseCheckTestSupport;
import com.puppycrawl.tools.checkstyle.DefaultConfiguration;
+import com.puppycrawl.tools.checkstyle.api.DetailAST;
+import com.puppycrawl.tools.checkstyle.api.TokenTypes;
public class BooleanExpressionComplexityCheckTest extends BaseCheckTestSupport {
@Test
@@ -67,4 +71,12 @@ public class BooleanExpressionComplexityCheckTest extends BaseCheckTestSupport {
verify(checkConfig, getPath("metrics" + File.separator + "InputBooleanExpressionComplexityNPE.java"), expected);
}
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testWrongToken() {
+ BooleanExpressionComplexityCheck booleanExpressionComplexityCheckObj = new BooleanExpressionComplexityCheck();
+ DetailAST ast = new DetailAST();
+ ast.initialize(new CommonHiddenStreamToken(TokenTypes.INTERFACE_DEF, "interface"));
+ booleanExpressionComplexityCheckObj.visitToken(ast);
+ }
}