From c83b8eeeacc1d425089c1b315bd2ec9d7fb3fff0 Mon Sep 17 00:00:00 2001 From: Michael Studman Date: Sun, 19 Dec 2004 23:05:21 +0000 Subject: [PATCH] Fixed bug where enum constants were causing NPE in Javadoc style check because enum constants have no explicit modifiers. --- .../checks/javadoc/JavadocStyleCheck.java | 13 +++++++++++-- .../tools/checkstyle/InputJavadocStyleCheck.java | 14 ++++++++++++++ .../checks/javadoc/JavadocStyleCheckTest.java | 5 +++++ 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheck.java index 7c3dd1e84..8c638acb9 100755 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheck.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheck.java @@ -138,8 +138,17 @@ public class JavadocStyleCheck return false; } - final DetailAST mods = aAST.findFirstToken(TokenTypes.MODIFIERS); - final Scope declaredScope = ScopeUtils.getScopeFromMods(mods); + final Scope declaredScope; + if (aAST.getType() == TokenTypes.ENUM_CONSTANT_DEF) + { + declaredScope = Scope.PUBLIC; + } + else + { + declaredScope = ScopeUtils.getScopeFromMods( + aAST.findFirstToken(TokenTypes.MODIFIERS)); + } + final Scope scope = ScopeUtils.inInterfaceOrAnnotationBlock(aAST) ? Scope.PUBLIC : declaredScope; diff --git a/src/testinputs/com/puppycrawl/tools/checkstyle/InputJavadocStyleCheck.java b/src/testinputs/com/puppycrawl/tools/checkstyle/InputJavadocStyleCheck.java index f09d4443b..3ad208c29 100755 --- a/src/testinputs/com/puppycrawl/tools/checkstyle/InputJavadocStyleCheck.java +++ b/src/testinputs/com/puppycrawl/tools/checkstyle/InputJavadocStyleCheck.java @@ -231,4 +231,18 @@ public class InputJavadocStyleCheck public void method19() { // should report empty javadoc (no text before see tag) } + + public enum Test + //Should complain about no javadoc + { + /** + * Value 1 without a period + */ + value1, + + /** + * Value 2 with a period. + */ + value2, + } } diff --git a/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheckTest.java b/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheckTest.java index 17b6236be..c502fa626 100755 --- a/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheckTest.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocStyleCheckTest.java @@ -29,6 +29,7 @@ public class JavadocStyleCheckTest "109:39: Extra HTML tag found: ", "186:8: Unclosed HTML tag found:
", "193: First sentence should end with a period.", + "238: First sentence should end with a period.", }; verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected); @@ -48,6 +49,7 @@ public class JavadocStyleCheckTest "81: First sentence should end with a period.", "88: First sentence should end with a period.", "193: First sentence should end with a period.", + "238: First sentence should end with a period.", }; verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected); @@ -90,6 +92,7 @@ public class JavadocStyleCheckTest "90: Incomplete HTML tag found: * should fail <", "205: Javadoc has empty description section.", "230: Javadoc has empty description section.", + "238: First sentence should end with a period.", }; verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected); @@ -114,6 +117,7 @@ public class JavadocStyleCheckTest "205: Javadoc has empty description section.", "211: Javadoc has empty description section.", "230: Javadoc has empty description section.", + "238: First sentence should end with a period.", }; verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected); @@ -141,6 +145,7 @@ public class JavadocStyleCheckTest "211: Javadoc has empty description section.", "218: Javadoc has empty description section.", "230: Javadoc has empty description section.", + "238: First sentence should end with a period.", }; verify(checkConfig, getPath("InputJavadocStyleCheck.java"), expected);