diff --git a/pom.xml b/pom.xml index 47114dcc6..c5bc6f00a 100644 --- a/pom.xml +++ b/pom.xml @@ -1120,9 +1120,6 @@ .*.checks.header.AbstractHeaderCheck9087 - .*.checks.metrics.AbstractClassCouplingCheck8797 - .*.checks.metrics.AbstractClassCouplingCheck\$.*78100 - .*.checks.regexp.CommentSuppressor75100 .*.checks.regexp.DetectorOptions10096 .*.checks.regexp.MultilineDetector5887 diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/metrics/AbstractClassCouplingCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/metrics/AbstractClassCouplingCheck.java index b1237e6b7..8ba5207b4 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/metrics/AbstractClassCouplingCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/metrics/AbstractClassCouplingCheck.java @@ -137,7 +137,7 @@ public abstract class AbstractClassCouplingCheck extends Check { context.visitLiteralThrows(ast); break; default: - throw new IllegalStateException(ast.toString()); + throw new IllegalArgumentException("Unknown type: " + ast); } } @@ -284,8 +284,7 @@ public abstract class AbstractClassCouplingCheck extends Check { * @return true if we should count this class. */ private boolean isSignificant(String className) { - return className.length() > 0 - && !excludedClasses.contains(className) + return !excludedClasses.contains(className) && !className.startsWith("java.lang."); } } diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/ClassDataAbstractionCouplingCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/ClassDataAbstractionCouplingCheckTest.java index 603e7a7c3..38505c738 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/ClassDataAbstractionCouplingCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/ClassDataAbstractionCouplingCheckTest.java @@ -26,8 +26,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 ClassDataAbstractionCouplingCheckTest extends BaseCheckTestSupport { @Test @@ -67,4 +71,12 @@ public class ClassDataAbstractionCouplingCheckTest extends BaseCheckTestSupport fail(); } } + + @Test(expected = IllegalArgumentException.class) + public void testWrongToken() { + ClassDataAbstractionCouplingCheck classDataAbstractionCouplingCheckObj = new ClassDataAbstractionCouplingCheck(); + DetailAST ast = new DetailAST(); + ast.initialize(new CommonHiddenStreamToken(TokenTypes.CTOR_DEF, "ctor")); + classDataAbstractionCouplingCheckObj.visitToken(ast); + } } diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/ClassFanOutComplexityCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/ClassFanOutComplexityCheckTest.java index 452e81f9e..fd5ead5f6 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/ClassFanOutComplexityCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/metrics/ClassFanOutComplexityCheckTest.java @@ -40,6 +40,7 @@ public class ClassFanOutComplexityCheckTest extends BaseCheckTestSupport { String[] expected = { "6:1: " + getCheckMessage(MSG_KEY, 3, 0), + "38:1: " + getCheckMessage(MSG_KEY, 1, 0), }; verify(checkConfig, diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/metrics/ClassCouplingCheckTestInput.java b/src/test/resources/com/puppycrawl/tools/checkstyle/metrics/ClassCouplingCheckTestInput.java index b9e9c5db4..27bd97c7a 100644 --- a/src/test/resources/com/puppycrawl/tools/checkstyle/metrics/ClassCouplingCheckTestInput.java +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/metrics/ClassCouplingCheckTestInput.java @@ -34,3 +34,10 @@ enum InnerEnum { private Set map1 = new HashSet(); private Map map2; } + +class InputThrows { + + public void get() throws NamingException, IllegalArgumentException { + new java.lang.ref.ReferenceQueue(); + } +}