diff --git a/pmd/src/net/sourceforge/pmd/rules/design/GenericClassCounterRule.java b/pmd/src/net/sourceforge/pmd/rules/design/GenericClassCounterRule.java index 81a121bd3f..888b7e5829 100644 --- a/pmd/src/net/sourceforge/pmd/rules/design/GenericClassCounterRule.java +++ b/pmd/src/net/sourceforge/pmd/rules/design/GenericClassCounterRule.java @@ -12,6 +12,7 @@ import net.sourceforge.pmd.AbstractJavaRule; import net.sourceforge.pmd.PropertyDescriptor; import net.sourceforge.pmd.RuleContext; import net.sourceforge.pmd.ast.ASTClassOrInterfaceType; +import net.sourceforge.pmd.ast.ASTCompilationUnit; import net.sourceforge.pmd.ast.ASTImportDeclaration; import net.sourceforge.pmd.ast.SimpleNode; import net.sourceforge.pmd.properties.StringProperty; @@ -61,22 +62,22 @@ public class GenericClassCounterRule extends AbstractJavaRule { "Defines how many occurences are legal",new String(),4.0f); - private List namesMatch; - private List typesMatch; - private List matches; - private List simpleClassname; + private List namesMatch = new ArrayList(0); + private List typesMatch = new ArrayList(0); + private List matches = new ArrayList(0); + private List simpleClassname = new ArrayList(0); private String operand; private int threshold; private static String COUNTER_LABEL; + /** * Default empty constructor */ public GenericClassCounterRule() { super(); - init(); } private List arrayAsList(String[] array) { @@ -108,6 +109,12 @@ public class GenericClassCounterRule extends AbstractJavaRule { super.start(ctx); } + @Override + public Object visit(ASTCompilationUnit node, Object data) { + init(); + return super.visit(node,data); + } + @Override public Object visit(ASTImportDeclaration node, Object data) { // Is there any imported types that match ?