From 6f9b9045f00cadd8712bcb69728014a4decfbeea Mon Sep 17 00:00:00 2001 From: Xavier Le Vourch Date: Mon, 28 Apr 2008 18:38:09 +0000 Subject: [PATCH] merged from 4.2.x branch: Bug fix: NPE in MoreThanOneLogger git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@6074 51baf565-9d33-0410-a72c-fc3788e3496d --- pmd/etc/changelog.txt | 1 + .../pmd/rules/loggingjava/xml/MoreThanOneLogger.xml | 11 +++++++++++ .../lang/java/rule/logging/MoreThanOneLoggerRule.java | 5 +++++ 3 files changed, 17 insertions(+) diff --git a/pmd/etc/changelog.txt b/pmd/etc/changelog.txt index 907b7f7895..3d99367ea6 100644 --- a/pmd/etc/changelog.txt +++ b/pmd/etc/changelog.txt @@ -169,6 +169,7 @@ bin and java14/bin scripts: AvoidDuplicateLiteralRule now has 'skipAnnotations' boolean property Fixed false positive in UnusedImports: javadoc comments are parsed to check @see and other tags Fixed parsing bug: constant fields in annotation classes +Bug fix: NPE in MoreThanOneLogger New rules: diff --git a/pmd/regress/test/net/sourceforge/pmd/rules/loggingjava/xml/MoreThanOneLogger.xml b/pmd/regress/test/net/sourceforge/pmd/rules/loggingjava/xml/MoreThanOneLogger.xml index c30252f1e8..5e50b87a11 100644 --- a/pmd/regress/test/net/sourceforge/pmd/rules/loggingjava/xml/MoreThanOneLogger.xml +++ b/pmd/regress/test/net/sourceforge/pmd/rules/loggingjava/xml/MoreThanOneLogger.xml @@ -37,6 +37,17 @@ public class Foo { class Bar { Logger log2; } +} + ]]> + + + + 0 + diff --git a/pmd/src/net/sourceforge/pmd/lang/java/rule/logging/MoreThanOneLoggerRule.java b/pmd/src/net/sourceforge/pmd/lang/java/rule/logging/MoreThanOneLoggerRule.java index 45f2d4d044..5b4b1441b7 100644 --- a/pmd/src/net/sourceforge/pmd/lang/java/rule/logging/MoreThanOneLoggerRule.java +++ b/pmd/src/net/sourceforge/pmd/lang/java/rule/logging/MoreThanOneLoggerRule.java @@ -3,6 +3,7 @@ package net.sourceforge.pmd.lang.java.rule.logging; import java.util.Stack; import net.sourceforge.pmd.lang.ast.Node; +import net.sourceforge.pmd.lang.java.ast.ASTAnnotationTypeDeclaration; import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceDeclaration; import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceType; import net.sourceforge.pmd.lang.java.ast.ASTEnumDeclaration; @@ -44,6 +45,10 @@ public class MoreThanOneLoggerRule extends AbstractJavaRule { return init (node, data); } + public Object visit(ASTAnnotationTypeDeclaration node, Object data) { + return init (node, data); + } + private Object init(JavaNode node, Object data) { stack.push(count); count = NumericConstants.ZERO;