Surefire Report

Summary

[Summary] [Package List] [Test Cases]


Tests Errors Failures Skipped Success Rate Time
3090 0 0 7 99.773% 55.287

Note: failures are anticipated and checked for with assertions while errors are unanticipated.


Package List

[Summary] [Package List] [Test Cases]


Package Tests Errors Failures Skipped Success Rate Time
net.sourceforge.pmd.lang.java.rule.strings 210 0 0 1 99.524% 0.405
net.sourceforge.pmd.symboltable 82 0 0 0 100% 0.014
net.sourceforge.pmd.lang.java.rule.naming 103 0 0 0 100% 0.172
net.sourceforge.pmd.lang.jsp 1 0 0 0 100% 0.002
net.sourceforge.pmd.renderers 58 0 0 0 100% 0.156
net.sourceforge.pmd.lang.plsql 5 0 0 0 100% 0.023
net.sourceforge.pmd.lang.java.rule.unnecessary 75 0 0 1 98.667% 0.102
net.sourceforge.pmd.lang.ecmascript.ast 15 0 0 0 100% 0.011
net.sourceforge.pmd.lang.plsql.rule.codesize 11 0 0 0 100% 0.697
net.sourceforge.pmd.lang.java.rule.migrating 35 0 0 0 100% 0.047
net.sourceforge.pmd.lang.jsp.rule.basic 33 0 0 0 100% 0.045
net.sourceforge.pmd.lang.java.rule.unusedcode 136 0 0 1 99.265% 0.221
net.sourceforge.pmd.lang.java.rule.strictexception 44 0 0 0 100% 0.08
net.sourceforge.pmd.ast 137 0 0 0 100% 0.106
net.sourceforge.pmd.lang.ecmascript 4 0 0 0 100% 0
net.sourceforge.pmd.ant 19 0 0 0 100% 6.575
net.sourceforge.pmd.lang.java.rule.imports 64 0 0 0 100% 0.109
net.sourceforge.pmd.lang.ecmascript.rule.controversial 1 0 0 0 100% 0.002
net.sourceforge.pmd.lang.java.rule.typeresolution.xml 1 0 0 1 0% 0
net.sourceforge.pmd.lang.jsp.rule.basicjsf 1 0 0 0 100% 0.001
net.sourceforge.pmd.lang.xsl.rule.xpath 5 0 0 0 100% 0.013
net.sourceforge.pmd.util.database 44 0 0 1 97.727% 0.114
net.sourceforge.pmd.util 19 0 0 0 100% 0
net.sourceforge.pmd.lang.vm 3 0 0 0 100% 0.015
net.sourceforge.pmd.lang.xml.rule 4 0 0 0 100% 0.015
net.sourceforge.pmd.util.filter 5 0 0 0 100% 0.002
net.sourceforge.pmd.lang.ecmascript.rule.basic 54 0 0 0 100% 0.116
net.sourceforge.pmd.lang.ast.xpath 2 0 0 0 100% 0
net.sourceforge.pmd.typeresolution 18 0 0 0 100% 0.034
net.sourceforge.pmd.lang.java.rule.clone 15 0 0 0 100% 0.018
net.sourceforge.pmd.lang.java.rule.optimizations 90 0 0 0 100% 0.154
net.sourceforge.pmd.lang.java.rule.loggingjakartacommons 22 0 0 0 100% 0.04
net.sourceforge.pmd.jaxen 16 0 0 0 100% 0.021
net.sourceforge.pmd.lang.java.rule.comments 10 0 0 0 100% 0.009
net.sourceforge.pmd.lang.java.symboltable 1 0 0 0 100% 0
net.sourceforge.pmd.lang.jsp.ast 50 0 0 0 100% 0.029
net.sourceforge.pmd.properties 60 0 0 1 98.333% 0.007
net.sourceforge.pmd.lang.java.rule 6 0 0 0 100% 0.011
net.sourceforge.pmd.cli 10 0 0 0 100% 0.502
net.sourceforge.pmd.lang.java.rule.braces 17 0 0 0 100% 0.02
net.sourceforge.pmd.lang.xml 13 0 0 0 100% 0.062
net.sourceforge.pmd.lang.java.rule.android 8 0 0 0 100% 0.024
net.sourceforge.pmd.lang.ecmascript.rule.braces 21 0 0 0 100% 0.052
net.sourceforge.pmd.lang.java.rule.empty 43 0 0 0 100% 0.102
net.sourceforge.pmd.util.designer 1 0 0 0 100% 0.008
net.sourceforge.pmd.lang.cpp 1 0 0 0 100% 0
net.sourceforge.pmd.lang.java.rule.codesize 70 0 0 0 100% 0.116
net.sourceforge.pmd.lang.dfa.report 7 0 0 0 100% 0.109
net.sourceforge.pmd.lang.java.rule.junit 94 0 0 0 100% 0.147
net.sourceforge.pmd.lang.ecmascript.rule.unnecessary 21 0 0 0 100% 0.048
net.sourceforge.pmd.stat 82 0 0 0 100% 0.091
net.sourceforge.pmd.lang.java.rule.controversial 110 0 0 0 100% 0.279
net.sourceforge.pmd.dfa 46 0 0 0 100% 0.043
net.sourceforge.pmd.lang.java.rule.finalizers 19 0 0 0 100% 0.039
net.sourceforge.pmd 212 0 0 0 100% 4.722
net.sourceforge.pmd.lang.plsql.dfa 8 0 0 0 100% 0.031
net.sourceforge.pmd.lang.java.rule.javabeans 23 0 0 0 100% 0.025
net.sourceforge.pmd.coverage 2 0 0 0 100% 34.633
net.sourceforge.pmd.lang 2 0 0 0 100% 0
net.sourceforge.pmd.lang.java.rule.loggingjava 20 0 0 0 100% 0.028
net.sourceforge.pmd.lang.java.rule.coupling 42 0 0 0 100% 0.071
net.sourceforge.pmd.lang.java.rule.sunsecure 24 0 0 0 100% 0.023
net.sourceforge.pmd.lang.java.rule.typeresolution 49 0 0 0 100% 0.062
net.sourceforge.pmd.lang.java.rule.basic 154 0 0 0 100% 2.283
net.sourceforge.pmd.lang.java.rule.j2ee 25 0 0 0 100% 0.029
net.sourceforge.pmd.lang.xml.rule.basic 5 0 0 0 100% 0.012
net.sourceforge.pmd.lang.vm.rule.basic 43 0 0 0 100% 0.072
net.sourceforge.pmd.lang.java.rule.design 404 0 0 1 99.752% 2.167
net.sourceforge.pmd.cpd 55 0 0 0 100% 0.121

Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

net.sourceforge.pmd.lang.java.rule.strings

Class Tests Errors Failures Skipped Success Rate Time
AvoidDuplicateLiteralsRuleTest 5 0 0 0 100% 0.025
StringsRulesTest 205 0 0 1 99.512% 0.38

net.sourceforge.pmd.symboltable

Class Tests Errors Failures Skipped Success Rate Time
SourceFileScopeTest 4 0 0 0 100% 0
AcceptanceTest 8 0 0 0 100% 0.003
TypeSetTest 18 0 0 0 100% 0
ClassScopeTest 19 0 0 0 100% 0.011
ScopeCreationVisitorTest 1 0 0 0 100% 0
ImageFinderFunctionTest 2 0 0 0 100% 0
GlobalScopeTest 2 0 0 0 100% 0
VariableNameDeclarationTest 8 0 0 0 100% 0
NameOccurrencesTest 7 0 0 0 100% 0
LocalScopeTest 8 0 0 0 100% 0
VariableUsageFinderFunctionTest 1 0 0 0 100% 0
MethodNameDeclarationTest 1 0 0 0 100% 0
MethodScopeTest 3 0 0 0 100% 0

net.sourceforge.pmd.lang.java.rule.naming

Class Tests Errors Failures Skipped Success Rate Time
NamingRulesTest 103 0 0 0 100% 0.172

net.sourceforge.pmd.lang.jsp

Class Tests Errors Failures Skipped Success Rate Time
JspParserTest 1 0 0 0 100% 0.002

net.sourceforge.pmd.renderers

Class Tests Errors Failures Skipped Success Rate Time
TextRendererTest 5 0 0 0 100% 0.002
SummaryHTMLRendererTest 7 0 0 0 100% 0
YAHTMLRendererTest 5 0 0 0 100% 0.004
IDEAJRendererTest 5 0 0 0 100% 0.001
XSLTRendererTest 1 0 0 0 100% 0.137
CSVRendererTest 5 0 0 0 100% 0.001
EmacsRendererTest 5 0 0 0 100% 0.001
HTMLRendererTest 5 0 0 0 100% 0.001
PapariTextRendererTest 5 0 0 0 100% 0.001
VBHTMLRendererTest 5 0 0 0 100% 0.002
TextPadRendererTest 5 0 0 0 100% 0.001
XMLRendererTest 5 0 0 0 100% 0.005

net.sourceforge.pmd.lang.plsql

Class Tests Errors Failures Skipped Success Rate Time
PLSQLParserTest 2 0 0 0 100% 0.02
PLSQLXPathRuleTest 3 0 0 0 100% 0.003

net.sourceforge.pmd.lang.java.rule.unnecessary

Class Tests Errors Failures Skipped Success Rate Time
UnnecessaryRulesTest 75 0 0 1 98.667% 0.102

net.sourceforge.pmd.lang.ecmascript.ast

Class Tests Errors Failures Skipped Success Rate Time
EcmascriptParserTest 8 0 0 0 100% 0.009
ASTTryStatementTest 4 0 0 0 100% 0
ASTFunctionNodeTest 2 0 0 0 100% 0.002
SourceCodePositionerTest 1 0 0 0 100% 0

net.sourceforge.pmd.lang.plsql.rule.codesize

Class Tests Errors Failures Skipped Success Rate Time
CodesizeRulesTest 11 0 0 0 100% 0.697

net.sourceforge.pmd.lang.java.rule.migrating

Class Tests Errors Failures Skipped Success Rate Time
MigratingRulesTest 35 0 0 0 100% 0.047

net.sourceforge.pmd.lang.jsp.rule.basic

Class Tests Errors Failures Skipped Success Rate Time
BasicRulesTest 33 0 0 0 100% 0.045

net.sourceforge.pmd.lang.java.rule.unusedcode

Class Tests Errors Failures Skipped Success Rate Time
UnusedCodeRulesTest 136 0 0 1 99.265% 0.221

net.sourceforge.pmd.lang.java.rule.strictexception

Class Tests Errors Failures Skipped Success Rate Time
StrictExceptionRulesTest 44 0 0 0 100% 0.08

net.sourceforge.pmd.ast

Class Tests Errors Failures Skipped Success Rate Time
ASTFormalParameterTest 1 0 0 0 100% 0
ASTAssignmentOperatorTest 3 0 0 0 100% 0.002
ASTLiteralTest 7 0 0 0 100% 0.001
AccessNodeTest 13 0 0 0 100% 0
ASTFieldDeclarationTest 5 0 0 0 100% 0.012
ClassDeclTest 5 0 0 0 100% 0.002
ASTMethodDeclarationTest 1 0 0 0 100% 0
ASTThrowStatementTest 2 0 0 0 100% 0
ASTImportDeclarationTest 4 0 0 0 100% 0
ASTVariableDeclaratorIdTest 5 0 0 0 100% 0
SimpleNodeTest 21 0 0 0 100% 0.012
ASTBlockStatementTest 2 0 0 0 100% 0
ASTAnnotationTest 3 0 0 0 100% 0.001
EncodingTest 1 0 0 0 100% 0
ParserCornersTest 6 0 0 0 100% 0.056
FieldDeclTest 7 0 0 0 100% 0.003
JDKVersionTest 33 0 0 0 100% 0.011
MethodDeclTest 8 0 0 0 100% 0.002
ASTBooleanLiteralTest 2 0 0 0 100% 0.001
ASTPrimarySuffixTest 2 0 0 0 100% 0
ASTInitializerTest 1 0 0 0 100% 0
ASTLocalVariableDeclarationTest 3 0 0 0 100% 0.001
ASTSwitchLabelTest 2 0 0 0 100% 0.002

net.sourceforge.pmd.lang.ecmascript

Class Tests Errors Failures Skipped Success Rate Time
EcmascriptParserOptionsTest 4 0 0 0 100% 0

net.sourceforge.pmd.ant

Class Tests Errors Failures Skipped Success Rate Time
CPDTaskTest 1 0 0 0 100% 2.422
FormatterTest 2 0 0 0 100% 0.002
PMDTaskTest 16 0 0 0 100% 4.151

net.sourceforge.pmd.lang.java.rule.imports

Class Tests Errors Failures Skipped Success Rate Time
ImportsRulesTest 64 0 0 0 100% 0.109

net.sourceforge.pmd.lang.ecmascript.rule.controversial

Class Tests Errors Failures Skipped Success Rate Time
ControversialRulesTest 1 0 0 0 100% 0.002

net.sourceforge.pmd.lang.java.rule.typeresolution.xml

Class Tests Errors Failures Skipped Success Rate Time
MyTestCase 1 0 0 1 0% 0

net.sourceforge.pmd.lang.jsp.rule.basicjsf

Class Tests Errors Failures Skipped Success Rate Time
BasicJsfRulesTest 1 0 0 0 100% 0.001

net.sourceforge.pmd.lang.xsl.rule.xpath

Class Tests Errors Failures Skipped Success Rate Time
XPathRulesTest 5 0 0 0 100% 0.013

net.sourceforge.pmd.util.database

Class Tests Errors Failures Skipped Success Rate Time
DBURITest 37 0 0 0 100% 0.039
DBMSMetadataTest 1 0 0 1 0% 0
DBTypeTest 4 0 0 0 100% 0.016
ResourceLoaderTest 1 0 0 0 100% 0.059
ResourceResolverTest 1 0 0 0 100% 0

net.sourceforge.pmd.util

Class Tests Errors Failures Skipped Success Rate Time
StringUtilTest 7 0 0 0 100% 0
CompoundListTest 5 0 0 0 100% 0
DateTimeUtilTest 1 0 0 0 100% 0
TypeMapTest 5 0 0 0 100% 0
ApplierTest 1 0 0 0 100% 0

net.sourceforge.pmd.lang.vm

Class Tests Errors Failures Skipped Success Rate Time
VmParserTest 3 0 0 0 100% 0.015

net.sourceforge.pmd.lang.xml.rule

Class Tests Errors Failures Skipped Success Rate Time
AbstractDomXmlRuleTest 3 0 0 0 100% 0.014
AbstractXmlRuleTest 1 0 0 0 100% 0.001

net.sourceforge.pmd.util.filter

Class Tests Errors Failures Skipped Success Rate Time
RegexStringFilterTest 5 0 0 0 100% 0.002

net.sourceforge.pmd.lang.ecmascript.rule.basic

Class Tests Errors Failures Skipped Success Rate Time
BasicRulesTest 54 0 0 0 100% 0.116

net.sourceforge.pmd.lang.ast.xpath

Class Tests Errors Failures Skipped Success Rate Time
AttributeAxisIteratorTest 1 0 0 0 100% 0
DocumentNavigatorTest 1 0 0 0 100% 0

net.sourceforge.pmd.typeresolution

Class Tests Errors Failures Skipped Success Rate Time
ClassTypeResolverTest 15 0 0 0 100% 0.03
PMDASMClassLoaderTest 3 0 0 0 100% 0.004

net.sourceforge.pmd.lang.java.rule.clone

Class Tests Errors Failures Skipped Success Rate Time
CloneRulesTest 15 0 0 0 100% 0.018

net.sourceforge.pmd.lang.java.rule.optimizations

Class Tests Errors Failures Skipped Success Rate Time
OptimizationsRulesTest 90 0 0 0 100% 0.154

net.sourceforge.pmd.lang.java.rule.loggingjakartacommons

Class Tests Errors Failures Skipped Success Rate Time
LoggingJakartaCommonsRulesTest 22 0 0 0 100% 0.04

net.sourceforge.pmd.jaxen

Class Tests Errors Failures Skipped Success Rate Time
RegexpAcceptanceTest 1 0 0 0 100% 0.004
MatchesFunctionTest 2 0 0 0 100% 0
AttributeAxisIteratorTest 1 0 0 0 100% 0
AttributeTest 1 0 0 0 100% 0
DocumentNavigatorTest 11 0 0 0 100% 0.017

net.sourceforge.pmd.lang.java.rule.comments

Class Tests Errors Failures Skipped Success Rate Time
CommentRulesTest 8 0 0 0 100% 0.009
AbstractCommentRuleTest 2 0 0 0 100% 0

net.sourceforge.pmd.lang.java.symboltable

Class Tests Errors Failures Skipped Success Rate Time
SimpleTypedNameDeclarationTest 1 0 0 0 100% 0

net.sourceforge.pmd.lang.jsp.ast

Class Tests Errors Failures Skipped Success Rate Time
JspPageStyleTest 9 0 0 0 100% 0.008
OpenTagRegisterTest 5 0 0 0 100% 0
JspDocStyleTest 35 0 0 0 100% 0.019
XPathJspRuleTest 1 0 0 0 100% 0.002

net.sourceforge.pmd.properties

Class Tests Errors Failures Skipped Success Rate Time
CharacterPropertyTest 6 0 0 0 100% 0
BooleanPropertyTest 6 0 0 0 100% 0
DoublePropertyTest 6 0 0 0 100% 0
PropertyAccessorTest 4 0 0 1 75% 0.003
StringPropertyTest 6 0 0 0 100% 0.001
IntegerPropertyTest 6 0 0 0 100% 0
FloatPropertyTest 6 0 0 0 100% 0.001
MethodPropertyTest 8 0 0 0 100% 0.001
EnumeratedPropertyTest 6 0 0 0 100% 0.001
TypePropertyTest 6 0 0 0 100% 0

net.sourceforge.pmd.lang.java.rule

Class Tests Errors Failures Skipped Success Rate Time
JavaRuleViolationTest 2 0 0 0 100% 0.001
XPathRuleTest 4 0 0 0 100% 0.01

net.sourceforge.pmd.cli

Class Tests Errors Failures Skipped Success Rate Time
XPathCLITest 1 0 0 0 100% 0.005
CLITest 8 0 0 0 100% 0.492
PMDCommandLineInterfaceTest 1 0 0 0 100% 0.005

net.sourceforge.pmd.lang.java.rule.braces

Class Tests Errors Failures Skipped Success Rate Time
BracesRulesTest 17 0 0 0 100% 0.02

net.sourceforge.pmd.lang.xml

Class Tests Errors Failures Skipped Success Rate Time
XmlParserOptionsTest 4 0 0 0 100% 0
XmlParserTest 9 0 0 0 100% 0.062

net.sourceforge.pmd.lang.java.rule.android

Class Tests Errors Failures Skipped Success Rate Time
AndroidRulesTest 8 0 0 0 100% 0.024

net.sourceforge.pmd.lang.ecmascript.rule.braces

Class Tests Errors Failures Skipped Success Rate Time
BracesRulesTest 21 0 0 0 100% 0.052

net.sourceforge.pmd.lang.java.rule.empty

Class Tests Errors Failures Skipped Success Rate Time
EmptyRulesTest 43 0 0 0 100% 0.102

net.sourceforge.pmd.util.designer

Class Tests Errors Failures Skipped Success Rate Time
DesignerTest 1 0 0 0 100% 0.008

net.sourceforge.pmd.lang.cpp

Class Tests Errors Failures Skipped Success Rate Time
ContinuationReaderTest 1 0 0 0 100% 0

net.sourceforge.pmd.lang.java.rule.codesize

Class Tests Errors Failures Skipped Success Rate Time
CodesizeRulesTest 70 0 0 0 100% 0.116

net.sourceforge.pmd.lang.dfa.report

Class Tests Errors Failures Skipped Success Rate Time
ViolationNodeTest 7 0 0 0 100% 0.109

net.sourceforge.pmd.lang.java.rule.junit

Class Tests Errors Failures Skipped Success Rate Time
JunitRulesTest 94 0 0 0 100% 0.147

net.sourceforge.pmd.lang.ecmascript.rule.unnecessary

Class Tests Errors Failures Skipped Success Rate Time
UnnecessaryRulesTest 21 0 0 0 100% 0.048

net.sourceforge.pmd.stat

Class Tests Errors Failures Skipped Success Rate Time
MetricTest 7 0 0 0 100% 0
StatisticalRuleTest 75 0 0 0 100% 0.091

net.sourceforge.pmd.lang.java.rule.controversial

Class Tests Errors Failures Skipped Success Rate Time
ControversialRulesTest 110 0 0 0 100% 0.279

net.sourceforge.pmd.dfa

Class Tests Errors Failures Skipped Success Rate Time
AcceptanceTest 31 0 0 0 100% 0.041
DAAPathFinderTest 1 0 0 0 100% 0
StructureTest 1 0 0 0 100% 0
VariableAccessTest 1 0 0 0 100% 0
DataFlowNodeTest 5 0 0 0 100% 0
StatementAndBraceFinderTest 6 0 0 0 100% 0.002
GeneralFiddlingTest 1 0 0 0 100% 0

net.sourceforge.pmd.lang.java.rule.finalizers

Class Tests Errors Failures Skipped Success Rate Time
FinalizersRulesTest 19 0 0 0 100% 0.039

net.sourceforge.pmd

Class Tests Errors Failures Skipped Success Rate Time
RuleSetFactoryTest 43 0 0 0 100% 4.134
LanguageVersionDiscovererTest 4 0 0 0 100% 0
RuleSetReferenceIdTest 25 0 0 0 100% 0.013
FileSelectorTest 3 0 0 0 100% 0
ExcludeLinesTest 2 0 0 0 100% 0.22
LanguageVersionTest 32 0 0 0 100% 0.001
ASTPackageDeclarationTest 1 0 0 0 100% 0.105
ReportTest 14 0 0 0 100% 0.162
AbstractRuleTest 14 0 0 0 100% 0.022
RuleSetTest 26 0 0 0 100% 0.026
RuleReferenceTest 3 0 0 0 100% 0.003
ReadableDurationTest 4 0 0 0 100% 0
ConfigurationTest 17 0 0 0 100% 0.016
RuleViolationTest 0 0 0 0 0% 0
SuppressWarningsTest 17 0 0 0 100% 0.018
RuleSetWriterTest 1 0 0 0 100% 0.002
RuleViolationComparatorTest 1 0 0 0 100% 0
RuleContextTest 5 0 0 0 100% 0

net.sourceforge.pmd.lang.plsql.dfa

Class Tests Errors Failures Skipped Success Rate Time
StatementAndBraceFinderTest 8 0 0 0 100% 0.031

net.sourceforge.pmd.lang.java.rule.javabeans

Class Tests Errors Failures Skipped Success Rate Time
JavabeansRulesTest 23 0 0 0 100% 0.025

net.sourceforge.pmd.coverage

Class Tests Errors Failures Skipped Success Rate Time
PMDCoverageTest 2 0 0 0 100% 34.633

net.sourceforge.pmd.lang

Class Tests Errors Failures Skipped Success Rate Time
ParserOptionsTest 2 0 0 0 100% 0

net.sourceforge.pmd.lang.java.rule.loggingjava

Class Tests Errors Failures Skipped Success Rate Time
LoggingJavaRulesTest 20 0 0 0 100% 0.028

net.sourceforge.pmd.lang.java.rule.coupling

Class Tests Errors Failures Skipped Success Rate Time
CouplingRulesTest 42 0 0 0 100% 0.071

net.sourceforge.pmd.lang.java.rule.sunsecure

Class Tests Errors Failures Skipped Success Rate Time
SunSecureRulesTest 24 0 0 0 100% 0.023

net.sourceforge.pmd.lang.java.rule.typeresolution

Class Tests Errors Failures Skipped Success Rate Time
UnusedImportsTest 13 0 0 0 100% 0.012
CloneMethodMustImplementCloneableTest 12 0 0 0 100% 0.02
LooseCouplingTest 12 0 0 0 100% 0.018
SignatureDeclareThrowsExceptionTest 12 0 0 0 100% 0.012

net.sourceforge.pmd.lang.java.rule.basic

Class Tests Errors Failures Skipped Success Rate Time
BasicRulesTest 154 0 0 0 100% 2.283

net.sourceforge.pmd.lang.java.rule.j2ee

Class Tests Errors Failures Skipped Success Rate Time
J2EERulesTest 25 0 0 0 100% 0.029

net.sourceforge.pmd.lang.xml.rule.basic

Class Tests Errors Failures Skipped Success Rate Time
BasicRulesTest 5 0 0 0 100% 0.012

net.sourceforge.pmd.lang.vm.rule.basic

Class Tests Errors Failures Skipped Success Rate Time
BasicRulesTest 43 0 0 0 100% 0.072

net.sourceforge.pmd.lang.java.rule.design

Class Tests Errors Failures Skipped Success Rate Time
DesignRulesTest 404 0 0 1 99.752% 2.167

net.sourceforge.pmd.cpd

Class Tests Errors Failures Skipped Success Rate Time
CPPTokenizerTest 6 0 0 0 100% 0.004
EcmascriptTokenizerTest 3 0 0 0 100% 0.003
LanguageFactoryTest 1 0 0 0 100% 0
CPDTest 3 0 0 0 100% 0.023
FortranTokenizerTest 1 0 0 0 100% 0.004
FileReporterTest 4 0 0 0 100% 0.001
XMLRendererTest 4 0 0 0 100% 0.014
AnyTokenizerTest 1 0 0 0 100% 0
CsTokenizerTest 9 0 0 0 100% 0.004
JavaTokensTokenizerTest 11 0 0 0 100% 0.003
RubyTokenizerTest 1 0 0 0 100% 0
MatchTest 2 0 0 0 100% 0
MatchAlgorithmTest 2 0 0 0 100% 0
PLSQLTokenizerTest 1 0 0 0 100% 0.044
CPDCommandLineInterfaceTest 4 0 0 0 100% 0.021
SourceCodeTest 1 0 0 0 100% 0
TokenEntryTest 1 0 0 0 100% 0

Test Cases

[Summary] [Package List] [Test Cases]

DBURITest

testSetSourceCodeNamesList 0
testSetSubnamePrefix 0
testDefaultLanguagesList 0.002
testExplicitSourceCodeNamesList 0.002
testGetSubprotocol 0.001
testDefaultSchemasList 0.001
testDefaultSourceCodeTypesList 0
testSetParameters 0
testSetSourceCodeType 0
testDump 0.001
testGetThinDriverClass 0.001
testDefaultSourceCodeNamesList 0
testGetDriverClass 0.001
testGetSourceCodeType 0
testSetSchemasList 0
testGetSubnamePrefix 0.002
testSetLanguagesList 0.001
testGetCharacterSet 0.01
testExplicitSchemasList 0.001
testGetSourceCodeTypesList 0
testExplicitLanguagesList 0
testExplicitCharacterSet 0
testSetDbType 0.001
testGetSourceCodeNamesList 0
testSetSubprotocol 0
testSetCharacterSet 0
testDefaultCharacterSet 0
testGetDbType 0
testGetUri 0.001
testGetSchemasList 0
testSetSourceCodeTypesList 0
testSetUri 0.001
testGetLanguagesList 0.001
testGetDbType2 0
testSetDriverClass 0.001
testExplicitSourceCodeTypesList 0.011
testGetParameters 0

TextRendererTest

testNullPassedIn 0
testError 0
testRendererMultiple 0.001
testRenderer 0
testRendererEmpty 0.001

J2EERulesTest

DoNotCallSystemExit::0 basic violations 0
DoNotCallSystemExit::1 ok 0.001
DoNotCallSystemExit::2 basic violations with Runtime 0.002
DoNotUseThreads::0 Having thread in a type name is doubtfull but allowed 0.001
DoNotUseThreads::1 extending threads is not allowed 0.001
DoNotUseThreads::2 implementing runnabel is not allowed 0.002
DoNotUseThreads::3 Use of runnable is also not allowed 0.001
LocalHomeNamingConvention::0 Bad suffix 0.002
LocalHomeNamingConvention::1 Good suffix 0.001
LocalInterfaceSessionNamingConvention::0 Bad suffix 0.001
LocalInterfaceSessionNamingConvention::1 Good suffix 0.002
MDBAndSessionBeanNamingConvention::0 Bad SessionBean name 0.001
MDBAndSessionBeanNamingConvention::1 Bad MessageDrivenBean name 0.001
MDBAndSessionBeanNamingConvention::2 Good SessionBean name 0.002
MDBAndSessionBeanNamingConvention::3 Good MessageDrivenBean name 0.001
RemoteInterfaceNamingConvention::0 Bad Session suffix 0.001
RemoteInterfaceNamingConvention::1 Bad EJB suffix 0.001
RemoteInterfaceNamingConvention::2 Bad Bean suffix 0.001
RemoteInterfaceNamingConvention::3 Good suffix 0.001
RemoteSessionInterfaceNamingConvention::0 Bad EJBHome name 0.001
RemoteSessionInterfaceNamingConvention::1 Good EJBHome name 0.001
StaticEJBFieldShouldBeFinal::0 Good practice 0.001
StaticEJBFieldShouldBeFinal::1 Bad example 0.001
UseProperClassLoader::0 failure case 0.001
UseProperClassLoader::1 correct way 0.001

SummaryHTMLRendererTest

testShowSuppressions 0
testHideSuppressions 0
testNullPassedIn 0
testError 0
testRendererMultiple 0
testRenderer 0
testRendererEmpty 0

RuleSetFactoryTest

testRuleSetFileName 0.146
testOverrideMessage 0.005
testWrongRuleNameReferenced 0.012
testWrongRuleNameExcluded 0.094
testReferenceInternalToInternal 0.007
testRuleSetReferenceWithDeprecatedRule 0.072
testDtd 0.407
testSingleRuleWithPriority 0.002
testProps 0.005
testXPath 0.003
testRefs 0.028
testMinimumLanugageVersion 0.001
testXmlSchema 0.36
testIncorrectMaximumLanugageVersion 0.003
testReferenceInternalToExternalChain 0.021
testLanguage 0.003
testExtendedReferences 0.218
testExternalReferenceOverride 0.008
testIncorrectLanguage 0.002
testOverrideMessageOneElem 0.005
testBug1202 0.014
testReadWriteRoundTrip 2.42
testSetPriority 0.003
testSingleRule 0.002
testInvertedMinimumMaximumLanugageVersions 0.002
testReferenceInternalToExternal 0.008
testDFAFlag 0.002
testRuleSetNotFound 0.001
testIncludeExcludePatterns 0.002
testIncorrectMinimumLanugageVersion 0.002
testFacadesOffByDefault 0.003
testAllPMDBuiltInRulesMeetConventions 0.207
testExternalReferences 0.003
testReferenceInternalToInternalChain 0.008
testReferencePriority 0.047
testEmptyRuleSetFile 0
testNoRuleSetFileName 0
testMultipleRules 0
testDirectDeprecatedRule 0
testCreateEmptyRuleSet 0.001
testReferenceToDeprecatedRule 0.004
testMaximumLanugageVersion 0.001
testIncorrectExternalRef 0.002

YAHTMLRendererTest

testNullPassedIn 0
testError 0.001
testRendererMultiple 0.002
testRenderer 0.001
testRendererEmpty 0

CodesizeRulesTest

CyclomaticComplexity::0 Simple method 0.007
ExcessiveMethodLength::0 short 0.175
ExcessiveObjectLength::0 short 0.037
ExcessivePackageBodyLength::0 A too complex procedure which triggers ExcessivePackageBodyLengthRule 0.004
ExcessivePackageSpecificationLength::0 A too complex procedure which triggers ExcessivePackageSpecificationLengthRule 0.041
ExcessiveParameterList::0 A too complex procedure which triggers ExcessiveParameterListRule 0.076
ExcessiveTypeLength::0 A too complex procedure which triggers ExcessiveTypeLengthRule 0.028
NPathComplexity::0 A too complex procedure which triggers NPathComplexityRule 0.003
NcssMethodCount::0 A too complex procedure which triggers ExcessiveNcssMethodCountRule 0.125
NcssObjectCount::0 A too complex procedure which triggers NcssObjectCountRule 0.157
TooManyFields::0 A too complex procedure which triggers TooManyFieldsRule 0.044

SourceFileScopeTest

testPackageIsEmptyString 0
testNestedClasses 0
testClassDeclAppears 0
testPackageNameFound 0

AcceptanceTest

testInnerOuterClass 0
testDemo 0
testEnum 0.001
testEq 0
testFieldFinder 0.001
testClashingSymbols 0
testInitializer 0.001
testCatchBlocks 0

LanguageVersionDiscovererTest

testJspFile 0
testPlsql 0
testJavaFileUsingDefaults 0
testJavaFileUsing14 0

BasicRulesTest

AvoidDeeplyNestedIfStmts::0 Bad example #1 0.003
AvoidDeeplyNestedIfStmts::1 Bad example #2 0.003
AvoidDeeplyNestedIfStmts::2 Good example #1 0.005
AvoidDeeplyNestedIfStmts::3 Good example #2 0.002
AvoidReassigningParameters::0 Bad example #1 0.006
AvoidReassigningParameters::1 Good example #1 0.001
CollapsibleIfStatements::0 Bad example #1 0.004
CollapsibleIfStatements::1 Bad example #2 0.001
CollapsibleIfStatements::2 Good example #1 0.001
CollapsibleIfStatements::3 Good example #2 0.002
CollapsibleIfStatements::4 Good example #3 0.002
CollapsibleIfStatements::5 Good example #4 0.004
CollapsibleIfStatements::6 Good example #5 0.001
CollapsibleIfStatements::7 Good example #6 0.001
CollapsibleIfStatements::8 Good example #7 0.002
CollapsibleIfStatements::9 Good example #8 0.002
EmptyForeachStmt::0 Bad example #1 0.001
EmptyForeachStmt::1 Bad example #2 0.001
EmptyForeachStmt::2 Good example #1 0.001
EmptyIfStmt::0 Bad example #1 0.002
EmptyIfStmt::1 Bad example #2 0.001
EmptyIfStmt::2 Bad example #3 0.001
EmptyIfStmt::3 Bad example #4 0.001
EmptyIfStmt::4 Bad example #5 0.001
EmptyIfStmt::5 Bad example #6 0.001
EmptyIfStmt::6 Good example #1 0.001
EmptyIfStmt::7 Good example #2 0.001
EmptyIfStmt::8 Good example #2 0.001
ExcessiveTemplateLength::0 Bad example #1 0.001
ExcessiveTemplateLength::1 Good example #1 0.001
NoInlineJavaScript::0 Bad example #1 0.002
NoInlineJavaScript::1 Good example #1 0.001
NoInlineJavaScript::2 Good example #2 0.001
NoInlineStyles::0 Bad example #1 0.001
NoInlineStyles::1 Good example #1 0.001
UnusedMacroParameter::0 Bad example #1 0.001
UnusedMacroParameter::1 Good example #1 0.001
UnusedMacroParameter::2 Good example #2 0.002
UnusedMacroParameter::3 Good example #3 0.001
UnusedMacroParameter::4 Good example #4 0.001
UnusedMacroParameter::5 Good example #5 0
UnusedMacroParameter::6 Good example #6 0.001
UnusedMacroParameter::7 Good example #7 0.004

CPPTokenizerTest

testDollarSignInIdentifier 0.001
testContinuation_IntraToken 0
testContinuation_InterToken 0.001
testMultiLineMacros 0.001
testWideCharacters 0.001
testDollarSignStartingIdentifier 0

ParserOptionsTest

testEqualsHashcode 0
testSuppressMarker 0

EcmascriptTokenizerTest

test1 0.002
test2 0.001
parseStringNotAsMultiline 0

RuleSetReferenceIdTest

testInternalRuleSetAndRule 0
testEmptyRuleSet 0
testOneFullRuleSet 0
testNullRulesetString 0
testRelativePathRuleSet 0
testExternalWithExternal 0
testUnknownRuleSet 0
testUnknownAndSimpleRuleSet 0
testMultipleSimpleRuleSet 0.001
testOneFullRuleSetURL 0
testInternalWithInternal 0.001
testSimpleRuleSetAndRule 0
testFullRuleSetURLAndRule 0
testMultipleFullRuleSet 0.001
testMixRuleSet 0
testInternalWithExternalRuleSet 0
testFullRuleSetAndRule 0
testOneReleaseRuleSet 0
testMultipleRulesWithSpaces 0.001
testFooRules 0
testAbsolutePathRuleSet 0
testOneSimpleRuleSet 0
testExternalWithInternal 0.001
testInteralWithExternal 0.008
testCommaInSingleId 0

LanguageFactoryTest

testSimple 0

SimpleTypedNameDeclarationTest

testEquals 0

JavabeansRulesTest

BeanMembersShouldSerialize::0 private String, no accessor 0.001
BeanMembersShouldSerialize::1 private static String 0.001
BeanMembersShouldSerialize::2 private transient String 0.001
BeanMembersShouldSerialize::3 getter, no setter 0.001
BeanMembersShouldSerialize::4 setter, no getter 0.001
BeanMembersShouldSerialize::5 both accessors, yay! 0.002
BeanMembersShouldSerialize::6 setFoo and isFoo is OK for booleans 0.001
BeanMembersShouldSerialize::7 setFoo and isFoo is not OK for Strings 0.001
BeanMembersShouldSerialize::8 prefix is off by default 0.001
BeanMembersShouldSerialize::9 valid prefix 0.001
BeanMembersShouldSerialize::10 invalid prefix 0.001
BeanMembersShouldSerialize::11 interface 0.001
BeanMembersShouldSerialize::12 @SuppressWarnings("serial") 0.002
BeanMembersShouldSerialize::13 ClassCastException on generic method 0.001
BeanMembersShouldSerialize::14 #881 private final without setter is flagged 0.001
MissingSerialVersionUID::0 Happy case 0.001
MissingSerialVersionUID::1 Simple failure case 0.001
MissingSerialVersionUID::2 failure using java.io.Serializable 0.001
MissingSerialVersionUID::3 implements Serializable and provides a serialVersionUID 0.001
MissingSerialVersionUID::4 TEST5 0.001
MissingSerialVersionUID::5 interface 0.001
MissingSerialVersionUID::6 abstract case 0.001
MissingSerialVersionUID::7 @SuppressWarnings("serial") 0.001

RegexpAcceptanceTest

testSimple 0.004

FileSelectorTest

testUnwantedFile 0
testUnwantedJavaFile 0
testWantedFile 0

AcceptanceTest

test_10 0.001
test_11 0.001
test_12 0
test_13 0.013
test_14 0
test_15 0
test_16 0
test_17 0
test_18 0
test_19 0
test_20 0.001
test_21 0.002
test_22 0.001
test_23 0.002
test_24 0.003
test_25 0.001
test_26 0.001
test_27 0.002
test_28 0.002
test_29 0.001
test_30 0.001
testLabelledBreakLockup 0.002
testbook 0.001
test_1 0.001
test_2 0.001
test_3 0.001
test_4 0.001
test_6 0.001
test_7 0.001
test_8 0
test_9 0

ASTFormalParameterTest

testVarargs 0

TypeSetTest

testFindClassSamePackage 0
testImplicitImportResolverPassFail 0
testVoidTypeResolver 0
testCurrentPackageResolverPass 0
testFindClassImportOnDemand 0
testASTCompilationUnitPackage 0
testExplicitImportResolver 0
testImportOnDemandResolverPass 0
importOnDemandResolverFail1 0
importOnDemandResolverFail2 0
testAddImport 0
testFindClassExplicitImport 0
testImplicitImportResolverPass 0
testPrimitiveTypeResolver 0
testFindClassPrimitive 0
testFindClassImplicitImport 0
testFindClassVoid 0
testFindFullyQualified 0

BasicRulesTest

DuplicateJspImports::0 Just 1 import 0.002
DuplicateJspImports::1 Duplicate imports 0.002
DuplicateJspImports::2 Duplicate imports 0.001
DuplicateJspImports::3 Duplicate imports 0.002
DuplicateJspImports::4 Duplicate imports 0.001
DuplicateJspImports::5 Just 1 import 0.001
IframeMissingSrcAttribute::0 1, iframe exists with src attribute 0.002
IframeMissingSrcAttribute::1 2, iframe is missing src attribute 0.001
IframeMissingSrcAttribute::2 3, IFRAME is missing src attribute 0.001
JspEncoding::0 No header 0.002
JspEncoding::1 Good page header 0.001
JspEncoding::2 Good page header 2 0.001
JspEncoding::3 Encoding is not UTF-8 0.002
JspEncoding::4 Good meta header 0.001
JspEncoding::5 Good meta header 2 0.002
NoClassAttribute::0 A class attribute. 0.001
NoClassAttribute::1 No scriptlets. 0.001
NoHtmlComments::0 No HTML comments 0.001
NoHtmlComments::1 HTML Comment 0.001
NoHtmlComments::2 JSP Comments 0.002
NoInlineScript::0 A violation. 0.001
NoInlineScript::1 A violation. 0.001
NoInlineScript::2 Ok, no 'src' with empty body. 0.001
NoInlineScript::3 Ok, only 'src' with empty whitespace body. 0.001
NoInlineScript::4 Ok, only 'src' without body. 0.001
NoInlineStyleInformation::0 A <B> element. 0.002
NoInlineStyleInformation::1 A font and align attribute. 0.001
NoInlineStyleInformation::2 No violations. 0.001
NoJspForward::0 A violation. 0.001
NoLongScripts::0 Too long javascript. 0.003
NoLongScripts::1 Short javascript. 0.002
NoScriptlets::0 Two scriptlets. 0.001
NoScriptlets::1 No scriptlets. 0.001

ExcludeLinesTest

testAcceptance 0.213
testAlternateMarker 0.007

BracesRulesTest

ForLoopsMustUseBraces::0 Ok 0.001
ForLoopsMustUseBraces::1 Ok, for in 0.003
ForLoopsMustUseBraces::2 Bad 0.002
ForLoopsMustUseBraces::3 Bad, no increment 0.003
ForLoopsMustUseBraces::4 Bad, no condition/increment 0.002
ForLoopsMustUseBraces::5 Bad, no initializer/condition/increment 0.003
ForLoopsMustUseBraces::6 Bad, for in 0.003
IfElseStmtsMustUseBraces::0 Ok, if/else 0.003
IfElseStmtsMustUseBraces::1 Ok, if/else if/else 0.003
IfElseStmtsMustUseBraces::2 Ok, if without braces 0.002
IfElseStmtsMustUseBraces::3 Ok, nest if without braces 0.003
IfElseStmtsMustUseBraces::4 Bad, if/else with else missing braces 0.003
IfElseStmtsMustUseBraces::5 Bad, if/else with if and else missing braces 0.002
IfElseStmtsMustUseBraces::6 Bad, if/else if/else, with else missing braces 0.002
IfElseStmtsMustUseBraces::7 Bad, if/else if/else, with else if and else missing braces 0.003
IfElseStmtsMustUseBraces::8 Bad, if/else if/else, with if and else if and else missing braces 0.003
IfStmtsMustUseBraces::0 Ok 0.002
IfStmtsMustUseBraces::1 Bad 0.002
IfStmtsMustUseBraces::2 Bad, nested 0.003
WhileLoopsMustUseBraces::0 Ok, with braces 0.002
WhileLoopsMustUseBraces::1 no braces 0.002

IDEAJRendererTest

testNullPassedIn 0
testError 0
testRendererMultiple 0
testRenderer 0
testRendererEmpty 0.001

ContinuationReaderTest

testHappyPath 0

ClassScopeTest

testCantContainsSuperToString 0
testOneParam 0.001
testbuz 0
testMethodUsageSeenWithThis 0.001
testOneParamVararg 0
testNestedClassFieldAndParameter 0
testEnumsClassScope 0
testContains 0
testMethodUsageSeen2 0.001
testContainsStaticVariablePrefixedWithClassName 0
testNestedClassDeclFound 0
testTwoParams 0
testClassName 0.001
testMethodUsageSeen 0
testTwoMethodsSameNameDiffArgs 0.007
testMethodDeclarationRecorded 0
testNoParams 0
testAnonymousInnerClassName 0
testTwoParamsVararg 0

CharacterPropertyTest

testErrorForBad 0
testType 0
testConstructors 0
testValueFrom 0
testAsDelimitedString 0
testErrorFor 0

LanguageVersionTest

testFindVersionsForLanguageTerseName[0] 0
testGetLanguageVersionForTerseName[0] 0
testFindVersionsForLanguageTerseName[1] 0
testGetLanguageVersionForTerseName[1] 0
testFindVersionsForLanguageTerseName[2] 0
testGetLanguageVersionForTerseName[2] 0
testFindVersionsForLanguageTerseName[3] 0
testGetLanguageVersionForTerseName[3] 0
testFindVersionsForLanguageTerseName[4] 0
testGetLanguageVersionForTerseName[4] 0
testFindVersionsForLanguageTerseName[5] 0
testGetLanguageVersionForTerseName[5] 0
testFindVersionsForLanguageTerseName[6] 0
testGetLanguageVersionForTerseName[6] 0
testFindVersionsForLanguageTerseName[7] 0
testGetLanguageVersionForTerseName[7] 0
testFindVersionsForLanguageTerseName[8] 0
testGetLanguageVersionForTerseName[8] 0
testFindVersionsForLanguageTerseName[9] 0
testGetLanguageVersionForTerseName[9] 0
testFindVersionsForLanguageTerseName[10] 0
testGetLanguageVersionForTerseName[10] 0
testFindVersionsForLanguageTerseName[11] 0
testGetLanguageVersionForTerseName[11] 0
testFindVersionsForLanguageTerseName[12] 0
testGetLanguageVersionForTerseName[12] 0
testFindVersionsForLanguageTerseName[13] 0.001
testGetLanguageVersionForTerseName[13] 0
testFindVersionsForLanguageTerseName[14] 0
testGetLanguageVersionForTerseName[14] 0
testFindVersionsForLanguageTerseName[15] 0
testGetLanguageVersionForTerseName[15] 0

ScopeCreationVisitorTest

testScopesAreCreated 0

StringUtilTest

testReplaceStringWithString 0
testUTF8Supported 0
testReplaceWithOneChar 0
testReplaceWithNull 0
testReplaceWithMultipleChars 0
testReplaceStringWithString2 0
testUTF8NotSupported 0

ASTAssignmentOperatorTest

testSimpleAssignmentRecognized 0.001
testCompoundAssignmentPlusRecognized 0.001
testCompoundAssignmentMultRecognized 0

DAAPathFinderTest

testTwoUpdateDefs 0

XSLTRendererTest

testDefaultStylesheet 0.137

CompoundListTest

testHappyPath 0
testEmpty 0
testHappyPathRemove 0
testEmptyBadNext 0
testEmptyBadRemove 0

BooleanPropertyTest

testErrorForBad 0
testType 0
testConstructors 0
testValueFrom 0
testAsDelimitedString 0
testErrorFor 0

XPathRulesTest

AvoidAxisNavigation::0 Basic scenario 0.005
AvoidAxisNavigation::1 using an axis name as an node name 0.002
AvoidAxisNavigation::2 using an axis descendant::self abreviation with checkSelfDescendantAbreviation @true 0.002
UseConcatOnce::0 Basic scenario 0.002
UseConcatOnce::1 Valid use of concat() 0.002

ASTLiteralTest

testIsStringLiteral 0
testIsFloatFloatLiteral 0
testIsNotStringLiteral 0
testIsCharLiteral 0
testIsIntIntLiteral 0
testIsIntLongLiteral 0
testIsFloatDoubleLiteral 0.001

DateTimeUtilTest

testConversions 0

CPDTest

testFileAddedWithRelativePath 0.019
testFileSectionWithBrokenSymlinks 0.002
testFileAddedAsSymlinkAndReal 0.002

UnnecessaryRulesTest

UnnecessaryBlock::0 Ok, function 0.003
UnnecessaryBlock::1 Ok, if 0.002
UnnecessaryBlock::2 Ok, for 0.003
UnnecessaryBlock::3 Ok, for in 0.002
UnnecessaryBlock::4 Ok, while 0.003
UnnecessaryBlock::5 Ok, do while 0.002
UnnecessaryBlock::6 Ok, switch 0.002
UnnecessaryBlock::7 Ok, try 0.002
UnnecessaryBlock::8 Bad, global 0.002
UnnecessaryBlock::9 Bad, function 0.003
UnnecessaryBlock::10 Bad, if 0.003
UnnecessaryBlock::11 Bad, for 0.002
UnnecessaryBlock::12 Bad, for in 0.002
UnnecessaryBlock::13 Bad, while 0.003
UnnecessaryBlock::14 Bad, do while 0.002
UnnecessaryBlock::15 Bad, switch 0.002
UnnecessaryBlock::16 Bad, try 0.002
UnnecessaryParentheses::0 Ok, simple 0.002
UnnecessaryParentheses::1 Bad, simple 0.002
UnnecessaryParentheses::2 Ok, complex 0.002
UnnecessaryParentheses::3 Bad, complex 0.002

FortranTokenizerTest

tokenizeTest 0.004

DesignRulesTest

AbstractClassWithoutAbstractMethod::0 concrete class 0.005
AbstractClassWithoutAbstractMethod::1 failure case 0.005
AbstractClassWithoutAbstractMethod::2 failure case, 1 method 0.005
AbstractClassWithoutAbstractMethod::3 abstract class with abstract method 0.006
AbstractClassWithoutAbstractMethod::4 abstract class implements interface 0.005
AbstractClassWithoutAnyMethod::0 Empty abstract method should trigger the rule nonetheless 0.005
AbstractClassWithoutAnyMethod::1 An abstract method without any method at all (Basic test case) 0.005
AbstractClassWithoutAnyMethod::2 An abstract method with constructors 0.005
AbstractClassWithoutAnyMethod::3 An abstract class with method, no violation 0.006
AccessorClassGeneration::0 inner class has private constructor 0.006
AccessorClassGeneration::1 inner class has public constructor 0.005
AccessorClassGeneration::2 outer class has public constructor 0.005
AccessorClassGeneration::3 final inner class 0.005
AccessorClassGeneration::4 interface inner class has private constructor 0.006
AccessorClassGeneration::5 there's a check for int declaration - not sure right now why 0.005
AssignmentToNonFinalStatic::0 clear rule violation 0.005
AssignmentToNonFinalStatic::1 ok 0.005
AvoidConstantsInterface::0 clear rule violation 0.005
AvoidConstantsInterface::1 ok 0.005
AvoidDeeplyNestedIfStmts::0 Bad, very deep 0.005
AvoidDeeplyNestedIfStmts::1 OK, not so deep 0.005
AvoidInstanceofChecksInCatchClause::0 bad, instanceof FooException 0.005
AvoidInstanceofChecksInCatchClause::1 ok, no instanceof 0.005
AvoidProtectedFieldInFinalClass::0 ok, protected field in non final class 0.005
AvoidProtectedFieldInFinalClass::1 bad, protected field in final class 0.005
AvoidProtectedFieldInFinalClass::2 ok, private field in final class 0.005
AvoidProtectedFieldInFinalClass::3 protected field in inner class is ok 0.005
AvoidProtectedMethodInFinalClassNotExtending::0 ok, protected method in non final class 0.005
AvoidProtectedMethodInFinalClassNotExtending::1 bad, protected method in final class that doesn't extend anything 0.005
AvoidProtectedMethodInFinalClassNotExtending::2 bad, protected method in final class that doesn't extend anything but implements interface 0.005
AvoidProtectedMethodInFinalClassNotExtending::3 ok, protected method in final class that does extend something 0.005
AvoidProtectedMethodInFinalClassNotExtending::4 ok, private method in final class 0.005
AvoidProtectedMethodInFinalClassNotExtending::5 protected method in non-final inner class is ok 0.005
AvoidProtectedMethodInFinalClassNotExtending::6 protected method in final inner class that extends something is ok 0.005
AvoidProtectedMethodInFinalClassNotExtending::7 protected method in final inner class that does not extend something is bad 0.005
AvoidProtectedMethodInFinalClassNotExtending::8 #1241 False+ AvoidProtectedMethodInFinalClassNotExtending 0.005
AvoidReassigningParameters::0 reassigned parameter, bad 0.005
AvoidReassigningParameters::1 one parameter, not reassigned, good 0.009
AvoidReassigningParameters::2 instance variable and parameter have same name 0.005
AvoidReassigningParameters::3 qualified instance variable same name as parameter 0.007
AvoidReassigningParameters::4 qualified name same as parameter 0.007
AvoidReassigningParameters::5 assignment to parameter public field 0.005
AvoidReassigningParameters::6 assignment to array parameter slot 0.005
AvoidReassigningParameters::7 throws a stacktrace 0.005
AvoidReassigningParameters::8 postfix increment in array dereference is bad 0.006
AvoidReassigningParameters::9 assignment to array slot 0.005
AvoidReassigningParameters::10 assignment to array 0.005
AvoidReassigningParameters::11 The rule should also detect parameter reassignement in constructors (at least to help young programmers still learning java basic) 0.005
AvoidReassigningParameters::12 The rule should take into account uses of field names, inherited or not, matching the method parameter name. 0.006
AvoidReassigningParameters::13 parameter name starting with "this" or "super" should still be flagged 0.005
AvoidReassigningParameters::14 local variables should not be flagged 0.005
AvoidReassigningParameters::15 2410201, False+ AvoidReassigningParameters 0.006
AvoidSynchronizedAtMethodLevel::0 TEST1 0.005
AvoidSynchronizedAtMethodLevel::1 TEST2 0.005
AvoidSynchronizedAtMethodLevel::2 #991 AvoidSynchronizedAtMethodLevel for static methods - bad case 0.005
AvoidSynchronizedAtMethodLevel::3 #991 AvoidSynchronizedAtMethodLevel for static methods - good case 0.005
BadComparison::0 comparison to Double.NaN 0.005
BadComparison::1 ok equality comparison 0.005
BadComparison::2 comparison to Float.NaN 0.006
ClassWithOnlyPrivateConstructorsShouldBeFinal::0 Simple violation 0.005
ClassWithOnlyPrivateConstructorsShouldBeFinal::1 ok, class is final 0.005
ClassWithOnlyPrivateConstructorsShouldBeFinal::2 One public constructor, not required to be final 0.005
ClassWithOnlyPrivateConstructorsShouldBeFinal::3 Ok, subclass using the private constructor 0.005
ClassWithOnlyPrivateConstructorsShouldBeFinal::4 Ok, subclass using the private constructor of another subclass 0.005
ClassWithOnlyPrivateConstructorsShouldBeFinal::5 Ok, two classes 0.005
ClassWithOnlyPrivateConstructorsShouldBeFinal::6 One protected constructor, not required to be final 0.006
ClassWithOnlyPrivateConstructorsShouldBeFinal::7 One package private constructor, not required to be final 0.005
CloseResource::0 connection is closed, ok 0.006
CloseResource::1 connection not closed, should have failed 0.006
CloseResource::2 ResultSet not closed, should have failed 0.005
CloseResource::3 Statement not closed, should have failed 0.005
CloseResource::4 Bad, no closeTargets properties for statements 0.007
CloseResource::5 Ok, closeTargets properties for statements 0.005
CloseResource::6 Add type param 0.007
CloseResource::7 OK 0.005
CloseResource::8 New use case 0.006
CloseResource::9 [1964798] 3 bugs in CloseResourceRule : Case failing with complete name 0.005
CloseResource::10 [1964798] 3 bugs in CloseResourceRule : null object is passed to close conection method (1) 0.005
CloseResource::11 [1964798] 3 bugs in CloseResourceRule : null object is passed to close conection method (2) 0.005
CloseResource::12 [1964798] 3 bugs in CloseResourceRule : If connection is returned, we should not log a violation. 0.005
CloseResource::13 invoke an external method that close the resource bug 2920057 0.006
CloseResource::14 invoke an external method that closes the resource, but one is not the right method and an another is not the right variable see bug 2920057 0.007
CloseResource::15 #1011 CloseResource Rule ignores Constructors 0.005
CloseResource::16 #1011 CloseResource Rule ignores Constructors - closed in finally 0.005
CloseResource::17 #1011 CloseResource Rule ignores Constructors - not a problem - instance variable 0.005
CloseResource::18 #1029 No instance level check in the close resource rule 0.004
CloseResource::19 #947 CloseResource rule fails if field is marked with annotation 0.006
CloseResource::20 #992 Class java.beans.Statement triggered in CloseResource rule 0.007
CloseResource::21 Custom close method, should be ok 0.005
CloseResource::22 bug #1131 CloseResource should complain if code betwen declaration of resource and try: Code betwen declaration and try, should fail 0.006
CloseResource::23 bug #1131 CloseResource should complain if code betwen declaration of resource and try: Creation inside try, ok 0.005
CloseResource::24 bug #1131 CloseResource should complain if code betwen declaration of resource and try: No sentences between creation and try, ok 0.006
CompareObjectsWithEquals::0 simple failure with method params 0.005
CompareObjectsWithEquals::1 primitives are ok 0.005
CompareObjectsWithEquals::2 skip nulls 0.005
CompareObjectsWithEquals::3 missed hit - qualified names. that's ok, we can't resolve the types yet, so better to skip this for now 0.005
CompareObjectsWithEquals::4 more qualified name skippage 0.005
CompareObjectsWithEquals::5 locals 0.005
CompareObjectsWithEquals::6 2 locals declared on one line 0.005
CompareObjectsWithEquals::7 array element comparison 0.013
CompareObjectsWithEquals::8 Comparing against new object should always return false 0.009
CompareObjectsWithEquals::9 qualified call in allocation 0.005
CompareObjectsWithEquals::10 #1028 False-positive: Compare objects with equals for Enums 0.006
ConfusingTernary::0 !=, bad 0.005
ConfusingTernary::1 ==, good 0.005
ConfusingTernary::2 != inside if, bad 0.005
ConfusingTernary::3 match && match, not confusing, OK 0.006
ConfusingTernary::4 A couple of bad and good cases 0.008
ConfusingTernary::5 #1161 Confusing Ternary should skip else if statements (or have a property to do so) (ignoreElseIf=false) 0.006
ConfusingTernary::6 #1161 Confusing Ternary should skip else if statements (or have a property to do so) (ignoreElseIf=true) 0.005
ConfusingTernary::7 #1198 ConfusingTernary does not ignore else if blocks even when property is set 0.006
ConstructorCallsOverridableMethod::0 calling public method from constructor 0.005
ConstructorCallsOverridableMethod::1 calling protected method from constructor 0.005
ConstructorCallsOverridableMethod::2 calling package private method from constructor 0.005
ConstructorCallsOverridableMethod::3 calling private method, ok 0.005
ConstructorCallsOverridableMethod::4 overloaded constructors, calling public method 0.005
ConstructorCallsOverridableMethod::5 calling method on literal bug 0.005
ConstructorCallsOverridableMethod::6 method in anonymous inner class is ok 0.006
ConstructorCallsOverridableMethod::7 bug report 975407 0.005
ConstructorCallsOverridableMethod::8 ignore abstract methods 0.005
ConstructorCallsOverridableMethod::9 Generics 0.005
ConstructorCallsOverridableMethod::10 985989, base line 0.006
ConstructorCallsOverridableMethod::11 985989, inner static class should be checked as well 0.005
ConstructorCallsOverridableMethod::12 bug #1005 False + for ConstructorCallsOverridableMethod - overloaded methods 0.005
ConstructorCallsOverridableMethod::13 bug #1127 False positive: Constructor Calls Overridable Method 0.005
ConstructorCallsOverridableMethod::14 NullPointer while analyzing ExcessiveLengthRule 0.006
DefaultLabelNotLastInSwitchStmt::0 ok 0.005
DefaultLabelNotLastInSwitchStmt::1 bad 0.005
DefaultLabelNotLastInSwitchStmt::2 ok, no default 0.005
EmptyMethodInAbstractClassShouldBeAbstract::0 void return method, with no return statement. 0.006
EmptyMethodInAbstractClassShouldBeAbstract::1 non-void return method, with just a, most likely, dummy return statement. 0.005
EmptyMethodInAbstractClassShouldBeAbstract::2 A method with just a return statement, but a meaningful one. 0.006
EmptyMethodInAbstractClassShouldBeAbstract::3 Other valid methods. 0.005
EmptyMethodInAbstractClassShouldBeAbstract::4 nested abstract class 0.006
EmptyMethodInAbstractClassShouldBeAbstract::5 nested class in abstract class 0.005
EmptyMethodInAbstractClassShouldBeAbstract::6 Bug 1888967 : Detection of dummy method 0.005
EmptyMethodInAbstractClassShouldBeAbstract::7 Bug 1888967 : Those methods should not be detected as a violation. 0.006
EmptyMethodInAbstractClassShouldBeAbstract::8 Bug 1888967 : This method should not be detected as a violation. 0.005
EmptyMethodInAbstractClassShouldBeAbstract::9 Bug 1932242 : False +, returning a String does not count as an Empty Method 0.006
EmptyMethodInAbstractClassShouldBeAbstract::10 #1147 EmptyMethodInAbstractClassShouldBeAbstract false positives 0.005
EmptyMethodInAbstractClassShouldBeAbstract::11 Detect empty statements 0.005
EqualsNull::0 object.equals(null), bad 0.006
EqualsNull::1 object == null, ok 0.005
EqualsNull::2 object.method().equals(null), bad 0.005
EqualsNull::3 object.equals(null, other), ok 0.005
EqualsNull::4 #1120 equalsnull false positive 0.005
FieldDeclarationsShouldBeAtStartOfClass::0 basic test 0.006
FieldDeclarationsShouldBeAtStartOfClass::1 basic test, not OK 0.005
FieldDeclarationsShouldBeAtStartOfClass::2 inner class, OK 0.005
FieldDeclarationsShouldBeAtStartOfClass::3 Initial report where rule was introduced, [ 2487971 ] False positive with field-level annotations 0.005
FieldDeclarationsShouldBeAtStartOfClass::4 #1126 False positive with FieldDeclarationsShouldBeAtStartOfClass for static enums 0.005
FieldDeclarationsShouldBeAtStartOfClass::5 #1126 Do not ignore enums 0.006
FieldDeclarationsShouldBeAtStartOfClass::6 #1244 FieldDeclarationsShouldBeAtStartOfClass and anonymous classes, ok 0.005
FieldDeclarationsShouldBeAtStartOfClass::7 #1244 FieldDeclarationsShouldBeAtStartOfClass and anonymous classes, fail 0.006
FinalFieldCouldBeStatic::0 simple failure case 0.005
FinalFieldCouldBeStatic::1 already static, OK 0.005
FinalFieldCouldBeStatic::2 non-final, OK 0.005
FinalFieldCouldBeStatic::3 non-primitive failure case - only works for String 0.005
FinalFieldCouldBeStatic::4 final field that's a thread, OK 0.011
FinalFieldCouldBeStatic::5 don't flag interfaces 0.005
FinalFieldCouldBeStatic::6 bug #1002 False +: FinalFieldCouldBeStatic on inner class 0.005
GodClass::0 Simple god class 0.007
GodClass::1 #1085 NullPointerException by at net.sourceforge.pmd.lang.java.rule.design.GodClassRule.visit(GodClassRule.java:313) 0.005
IdempotentOperations::0 assignment of a variable (local or field) to itself 0.005
IdempotentOperations::1 assignment of one array element to another 0.005
IdempotentOperations::2 qualified names causing NPE troubleshooting 0.005
IdempotentOperations::3 check for method calls 0.005
IdempotentOperations::4 compound assignments are OK 0.005
IdempotentOperations::5 #1104 IdempotentOperation false positive 0.006
ImmutableField::0 could be immutable, only assigned in constructor 0.005
ImmutableField::1 could be immutable, only assigned in decl 0.004
ImmutableField::2 ok, assigned twice 0.005
ImmutableField::3 ok, static field 0.005
ImmutableField::4 ok, one constructor assigns, one doesn't 0.004
ImmutableField::5 ok, assignment via postfix expression 0.004
ImmutableField::6 postfix expressions imply mutability 0.004
ImmutableField::7 compound assignment 0.006
ImmutableField::8 preincrement 0.005
ImmutableField::9 predecrement 0.005
ImmutableField::10 compound assignment 2 0.005
ImmutableField::11 rhs 2 0.005
ImmutableField::12 assignment in constructor is in try block 0.005
ImmutableField::13 assignment in method is in try block 0.005
ImmutableField::14 assignment in constructor in loop is ok 0.005
ImmutableField::15 assignment in anonymous inner class method is OK 0.006
ImmutableField::16 assignment through this 0.005
ImmutableField::17 volatile variables can't be final 0.004
ImmutableField::18 Bug 1740480, optional override of default value based on constructor argument check 0.005
ImmutableField::19 Bug 1740480, assignment in single constructor based on constructor argument check 0.005
ImmutableField::20 3526212, pmd-5.0.0: ImmutableField false positive on self-inc/dec 0.005
ImmutableField::21 #946 ImmutableField false + 0.005
ImmutableField::22 #1032 ImmutableField Rule: Private field in inner class gives false positive 0.005
InstantiationToGetClass::0 simple failure case 0.005
InstantiationToGetClass::1 ok 0.005
InstantiationToGetClass::2 should catch param to constructor 0.005
LogicInversion::0 failure case, inequality 0.005
LogicInversion::1 failure case, comparison 0.005
LogicInversion::2 correct inequality 0.005
LogicInversion::3 correct comparison 0.004
MissingBreakInSwitch::0 one case, which is not empty 0.006
MissingBreakInSwitch::1 just skip empty switch 0.005
MissingBreakInSwitch::2 one break, but two cases + one default case. But there is an intentional fall through - because there are no statemenets between case 1 and case 2. 0.006
MissingBreakInSwitch::3 each case stmt has a return 0.005
MissingBreakInSwitch::4 all cases have return or throw 0.006
MissingBreakInSwitch::5 3496028: False- 0.005
MissingBreakInSwitch::6 #1246 False positive from MissingBreakInSwitch 0.006
MissingStaticMethodInNonInstantiatableClass::0 ok 0.005
MissingStaticMethodInNonInstantiatableClass::1 ok, default constructor 0.006
MissingStaticMethodInNonInstantiatableClass::2 simple failure 0.005
MissingStaticMethodInNonInstantiatableClass::3 failure with multiple constructors 0.005
MissingStaticMethodInNonInstantiatableClass::4 protected constructor is ok 0.005
MissingStaticMethodInNonInstantiatableClass::5 ok, one static method 0.005
MissingStaticMethodInNonInstantiatableClass::6 nested class 0.006
MissingStaticMethodInNonInstantiatableClass::7 ok, public static field 0.006
MissingStaticMethodInNonInstantiatableClass::8 not ok, non-public static field 0.005
MissingStaticMethodInNonInstantiatableClass::9 ok, protected static field 0.006
MissingStaticMethodInNonInstantiatableClass::10 ok, package private static field 0.009
MissingStaticMethodInNonInstantiatableClass::11 ok, checking for bug 1432595 0.009
MissingStaticMethodInNonInstantiatableClass::12 #1125 Missing Static Method In Non Instantiatable Class / Factory 0.006
NonCaseLabelInSwitchStatement::0 label inside switch 0.005
NonCaseLabelInSwitchStatement::1 ok 0.005
NonStaticInitializer::0 bad 0.005
NonStaticInitializer::1 static initializers are OK 0.005
NonThreadSafeSingleton::0 failure case 0.005
NonThreadSafeSingleton::1 OK, method is synchronized 0.005
NonThreadSafeSingleton::2 OK, in synchronized block 0.006
NonThreadSafeSingleton::3 OK, in returning non-static data 0.005
NonThreadSafeSingleton::4 failure case, two if statements 0.005
NonThreadSafeSingleton::5 failure case, compound if statement 0.006
NonThreadSafeSingleton::6 failure case 2 0.005
NonThreadSafeSingleton::7 From defect 1573591 0.005
NonThreadSafeSingleton::8 #997 Rule NonThreadSafeSingleton gives analysis problem 0.005
OptimizableToArrayCall::0 failure case 0.005
OptimizableToArrayCall::1 Array dimensioner uses method call, ok 0.005
OptimizableToArrayCall::2 Array dimensioner uses variable, ok 0.005
OptimizableToArrayCall::3 #937 OptimizableToArrayCall does not catch multilevel method chains 0.005
PositionLiteralsFirstInCaseInsensitiveComparisons::0 ok, literal comes first 0.005
PositionLiteralsFirstInCaseInsensitiveComparisons::1 bad, literal comes last 0.005
PositionLiteralsFirstInCaseInsensitiveComparisons::2 ok 0.005
PositionLiteralsFirstInCaseInsensitiveComparisons::3 Test case from bug [1472195] - PositionLiteralsFirstInComparisons give many false positives 0.005
PositionLiteralsFirstInCaseInsensitiveComparisons::4 Test case from bug [1472195] - PositionLiteralsFirstInComparisons give many false positives 0.006
PositionLiteralsFirstInComparisons::0 ok, literal comes first 0.006
PositionLiteralsFirstInComparisons::1 bad, literal comes last 0.005
PositionLiteralsFirstInComparisons::2 ok 0.005
PositionLiteralsFirstInComparisons::3 Test case from bug [1472195] - PositionLiteralsFirstInComparisons give many false positives 0.006
PositionLiteralsFirstInComparisons::4 Test case from bug [1472195] - PositionLiteralsFirstInComparisons give many false positives 0.005
PreserveStackTrace::0 1, Exception thrown without preserving stack 0.005
PreserveStackTrace::1 2, Exception thrown, stack preserved 0.006
PreserveStackTrace::2 3, Exception thrown, stack preserved 0.005
PreserveStackTrace::3 4, No exception thrown, OK 0.005
PreserveStackTrace::4 5, No exception thrown, OK 0.005
PreserveStackTrace::5 6, No exception thrown, OK 0.005
PreserveStackTrace::6 7, No exception thrown, OK 0.005
PreserveStackTrace::7 8, No exception thrown, OK 0.005
PreserveStackTrace::8 9, Excetion is cast, OK 0.005
PreserveStackTrace::9 10, Throwing new Exception, OK 0.006
PreserveStackTrace::10 11, Throwing new Exception, OK 0.005
PreserveStackTrace::11 12, Catch and throw RuntimeException 0.005
PreserveStackTrace::12 13, Catch and throw RuntimeException, fail 0.005
PreserveStackTrace::13 14, Nested with same name catch and throw, fail on inner 0.005
PreserveStackTrace::14 15, IllegalStateException can take a cause exception in the constructor, too. 0.005
PreserveStackTrace::15 16, False -, No violations reported by PreserveStackTrace Rule 0.006
PreserveStackTrace::16 17, PreserveStackTrace Rule should exclude this as initCause is used. 0.005
PreserveStackTrace::17 18, side effects on rules 0.006
PreserveStackTrace::18 19, False positive 0.008
PreserveStackTrace::19 20, False positive 0.007
PreserveStackTrace::20 21, Java 7's multi-catch, NOK 0.005
PreserveStackTrace::21 22, Java 7's multi-catch, OK 0.005
PreserveStackTrace::22 #943 PreserveStackTrace false positive if a StringBuffer exists 0.006
PreserveStackTrace::23 #1087 PreserveStackTrace (still) ignores initCause() 0.006
PreserveStackTrace::24 #1087 PreserveStackTrace (still) ignores initCause() - negative test case 0.006
PreserveStackTrace::25 #794 False positive on PreserveStackTrace with anonymous inner 0.006
ReturnEmptyArrayRatherThanNull::0 Basic test case 0.005
ReturnEmptyArrayRatherThanNull::1 good behavior should not trigger violation 0.005
SimpleDateFormatNeedsLocale::0 ok, uses a two arg constructor 0.005
SimpleDateFormatNeedsLocale::1 bad, using the single-arg contructor 0.005
SimpleDateFormatNeedsLocale::2 all quiet 0.009
SimplifyBooleanExpressions::0 in field assignment 0.009
SimplifyBooleanExpressions::1 in method body 0.007
SimplifyBooleanExpressions::2 ok 0.005
SimplifyBooleanExpressions::3 two cases in an && expression 0.006
SimplifyBooleanExpressions::4 simple use of BooleanLiteral, should not be flagged 0.005
SimplifyBooleanReturns::0 1, bad 0.005
SimplifyBooleanReturns::1 2, bad 0.004
SimplifyBooleanReturns::2 3, ok 0.004
SimplifyBooleanReturns::3 4, ok 0.005
SimplifyConditional::0 failure case 0.006
SimplifyConditional::1 ok 0.005
SimplifyConditional::2 transpose x and null, still bad 0.005
SimplifyConditional::3 conditional or and !(instanceof) 0.005
SimplifyConditional::4 indexing into array is ok 0.005
SimplifyConditional::5 test for null on unrelated object is ok 0.005
SimplifyConditional::6 Bug [1843273] False - 0.006
SimplifyConditional::7 Bug 2317099 : False + in SimplifyConditional 0.005
SimplifyConditional::8 #1165 SimplifyConditional false positive 0.006
SingularField::0 failure case 0.005
SingularField::1 Ok, used for control flow 0.005
SingularField::2 ok 0.005
SingularField::3 second method uses 'this' 0.005
SingularField::4 skip publics 0.005
SingularField::5 skip statics 0.005
SingularField::6 unused fields shouldn't show up 0.005
SingularField::7 inner class 0.006
SingularField::8 initialized in constructor 0.005
SingularField::9 ok case with Object 0.005
SingularField::10 ok, shouldn't catch unused variable 0.005
SingularField::11 ok case with self-instantiation 0.005
SingularField::12 Reuse variable name as params in method calls 0.005
SingularField::13 Ok, instantiates own self internally 0.005
SingularField::14 ok, variable accessed twice in same method 0.005
SingularField::15 failure, static 0.004
SingularField::16 failure, second method re-uses class level name 0.006
SingularField::17 initialized in static initialization block 0.005
SingularField::18 1409944, fields used to synchronize should not trigger 0.005
SingularField::19 1409944, fields not used to synchronize should trigger 0.005
SingularField::20 1409944, field is used to change the flow of different calls 0.005
SingularField::21 Ok, used in outer class 0.005
SingularField::22 Not ok, since inner classes are checked 0.005
SingularField::23 Not ok, violation with first usage = non-assignment 0.005
SingularField::24 Ok, field used to aggregate values 0.005
SingularField::25 Ok, setting values 0.005
SingularField::26 multiple fields on same line 0.005
SingularField::27 field in inner class 0.005
SingularField::28 bug 3574133 - false + with enums 0.005
SwitchDensity::0 Five stmts in one switch case, should be flagged 0.005
SwitchDensity::1 One stmt in one switch case, ok 0.005
SwitchDensity::2 Five stmts, 5 cases, OK 0.005
SwitchStmtsShouldHaveDefault::0 simple failure case 0.005
SwitchStmtsShouldHaveDefault::1 simple ok case 0.005
TooFewBranchesForASwitchStatement::0 Only one case, this is useless 0.006
TooFewBranchesForASwitchStatement::1 Even two branches is not enough for a switch statement 0.005
TooFewBranchesForASwitchStatement::2 Three branches in a switch statement is ok. 0.006
UncommentedEmptyConstructor::0 simple failure 0.005
UncommentedEmptyConstructor::1 only 'this(...)' is OK 0.005
UncommentedEmptyConstructor::2 only 'this(...)' is not OK, if ignoring explicit constructor calls 0.005
UncommentedEmptyConstructor::3 only 'super(...)' is OK 0.006
UncommentedEmptyConstructor::4 single-line comment is OK 0.006
UncommentedEmptyConstructor::5 multiple-line comment is OK 0.012
UncommentedEmptyConstructor::6 Javadoc comment is OK 0.007
UncommentedEmptyConstructor::7 ok 0.009
UncommentedEmptyConstructor::8 with 'this(...)' ok 0.007
UncommentedEmptyConstructor::9 with 'super(...)' ok 0.007
UncommentedEmptyConstructor::10 private is ok 0.005
UncommentedEmptyConstructor::11 Empty constructor with documenting javadoc still triggers 0.005
UncommentedEmptyMethod::0 simple failure 0.005
UncommentedEmptyMethod::1 single-line comment is OK 0.005
UncommentedEmptyMethod::2 multiple-line comment is OK 0.005
UncommentedEmptyMethod::3 Javadoc comment is OK 0.005
UncommentedEmptyMethod::4 ok 0.005
UnnecessaryLocalBeforeReturn::0 skip void/native/abstract methods 0.005
UnnecessaryLocalBeforeReturn::1 skip literal returns 0.004
UnnecessaryLocalBeforeReturn::2 simple failure case 0.005
UnnecessaryLocalBeforeReturn::3 skip complicated returns 0.005
UnnecessaryLocalBeforeReturn::4 skip method calls 0.005
UnsynchronizedStaticDateFormatter::0 Format called from non-synchronized block 0.005
UnsynchronizedStaticDateFormatter::1 2, No call to format 0.004
UnsynchronizedStaticDateFormatter::2 3, Inside synchronized, OK 0.004
UnsynchronizedStaticDateFormatter::3 4, Inside synchronized, OK 0.005
UnsynchronizedStaticDateFormatter::4 5, Use DateFormat, ok 0.005
UnsynchronizedStaticDateFormatter::5 6, Use DateFormat, fail 0.005
UnsynchronizedStaticDateFormatter::6 #940 False positive on UnsynchronizedStaticDateFormatter 0.006
UseCollectionIsEmpty::0 fail, == 0 0.005
UseCollectionIsEmpty::1 ok, isEmpty 0.005
UseCollectionIsEmpty::2 fail, != 0 0.005
UseCollectionIsEmpty::3 ok, !isEmpty 0.005
UseCollectionIsEmpty::4 fail, != 0 0.005
UseCollectionIsEmpty::5 ok, !isEmpty 0.005
UseCollectionIsEmpty::6 fail, 0 == 0.005
UseCollectionIsEmpty::7 fail, > 0 0.005
UseCollectionIsEmpty::8 ok, in expression 0.005
UseCollectionIsEmpty::9 ok, in expression 0.005
UseCollectionIsEmpty::10 #1214 UseCollectionIsEmpty misses some usage 0.006
UseCollectionIsEmpty::11 #1230 UseCollectionIsEmpty gets false positives 0.006
UseLocaleWithCaseConversions::0 toLowerCase() with no args 0.006
UseLocaleWithCaseConversions::1 toUpperCase() with no args 0.005
UseLocaleWithCaseConversions::2 both ok 0.005
UseLocaleWithCaseConversions::3 toHexString OK 0.006
UseLocaleWithCaseConversions::4 Compound method call 0.005
UseNotifyAllInsteadOfNotify::0 TEST1 0.005
UseNotifyAllInsteadOfNotify::1 TEST2 0.005
UseNotifyAllInsteadOfNotify::2 TEST3 0.005
UseNotifyAllInsteadOfNotify::3 TEST4 0.006
UseNotifyAllInsteadOfNotify::4 TEST5 0.005
UseNotifyAllInsteadOfNotify::5 notify() with params is OK 0.005
UseUtilityClass::0 should be utility class since all static, public constructor 0.006
UseUtilityClass::1 ok, uses non-static 0.005
UseUtilityClass::2 should be utility class, couple of statics, no constructor 0.006
UseUtilityClass::3 public constructor, no static - ok 0.005
UseUtilityClass::4 classic utility class - ok 0.006
UseUtilityClass::5 abstract, so ok 0.005
UseUtilityClass::6 has some private and no public static fields, so ok 0.006
UseUtilityClass::7 has public static field, so need to check 0.006
UseUtilityClass::8 junit 'suite' method is OK 0.006
UseUtilityClass::9 Reproducing bug [ 2315599 ] False +: UseSingleton with class containing constructor: Although there is a static method, the class also has a non-private constructor. This is a common design for custom exceptions which contain a private static method to format error message strings. 0.007
UseUtilityClass::10 inner should be utility class since all static, public constructor 0.005
UseUtilityClass::11 [ 2404700 ] UseSingleton should not act on enums 0.007
UseUtilityClass::12 NPE in incorrect implementation... 0.005
UseUtilityClass::13 OK, method annotations 0.006
UseVarargs::0 constructor, use varargs 0.009
UseVarargs::1 method, use varargs 0.006
UseVarargs::2 constructor, do not varargs 0.006
UseVarargs::3 method, do not varargs 0.006
UseVarargs::4 method, do not varargs as the signature is dictated by an interface // TODO Once this is implemented, perhaps it should be optional? The compiler will technically let you use varargs. 0
skipped
UseVarargs::4 method, do not varargs as the signature is dictated by an interface // TODO Once this is implemented, perhaps it should be optional? The compiler will technically let you use varargs. 0

StructureTest

testAddResultsinDFANodeContainingAddedNode 0

CSVRendererTest

testNullPassedIn 0
testError 0
testRendererMultiple 0.001
testRenderer 0
testRendererEmpty 0

ImageFinderFunctionTest

testSeveralImages 0
testSingleImage 0

LoggingJakartaCommonsRulesTest

GuardDebugLogging::0 ok, no error expected 0.003
GuardDebugLogging::1 Complex logging without guard 0.002
GuardDebugLogging::2 Complex logging wit misplaced guard 0.001
GuardDebugLogging::3 ok #1189 GuardLogStatementRule and GuardDebugLoggingRule broken for log4j2 0.003
GuardDebugLogging::4 violation - wrong guard #1189 GuardLogStatementRule and GuardDebugLoggingRule broken for log4j2 0.002
GuardDebugLogging::5 violation - no if #1189 GuardLogStatementRule and GuardDebugLoggingRule broken for log4j2 0.002
GuardDebugLogging::6 #1224 GuardDebugLogging broken in 5.1.1 - missing additive statement check in log statement 0.002
GuardLogStatement::0 OK, guard is here 0.002
GuardLogStatement::1 KO, missing guard 1 0.001
GuardLogStatement::2 KO, missing guard 2 0.001
GuardLogStatement::3 ok #1189 GuardLogStatementRule and GuardDebugLoggingRule broken for log4j2 0.002
GuardLogStatement::4 violation - wrong guard #1189 GuardLogStatementRule and GuardDebugLoggingRule broken for log4j2 0.002
ProperLogger::0 Ok 0.002
ProperLogger::1 Wrong class name 0.002
ProperLogger::2 Ok, special case 0.002
ProperLogger::3 bug 1626232, a seperate variable initialization should not confuse the rule 0.002
ProperLogger::4 bug 1626232, extra loggers with different names are not allowed by default (use NOPMD if you want them) 0.001
UseCorrectExceptionLogging::0 ok 0.002
UseCorrectExceptionLogging::1 failure case - two calls 0.002
UseCorrectExceptionLogging::2 must be in a catch block 0.001
UseCorrectExceptionLogging::3 bug 1626232, the rule should not be confused by inner classes 0.002
UseCorrectExceptionLogging::4 bug 1626232, should work with a static block 0.001

MatchesFunctionTest

testMatch 0
testNoMatch 0

ASTPackageDeclarationTest

testPackageName 0.105

FinalizersRulesTest

AvoidCallingFinalize::0 simple failure case 0.002
AvoidCallingFinalize::1 calling finalize on an object 0.003
AvoidCallingFinalize::2 calling super.finalize 0.005
AvoidCallingFinalize::3 no call to finalize 0
AvoidCallingFinalize::4 it's ok in a finalizer 0.001
AvoidCallingFinalize::5 finalizer in anon inner class is OK too 0.003
EmptyFinalizer::0 simple failure 0.001
EmptyFinalizer::1 ok 0.005
FinalizeDoesNotCallSuperFinalize::0 bad 0
FinalizeDoesNotCallSuperFinalize::1 ok 0.001
FinalizeDoesNotCallSuperFinalize::2 ok, super.finalize called in try..finally 0.003
FinalizeDoesNotCallSuperFinalize::3 ok, super.finalize called in try..catch..finally 0.003
FinalizeOnlyCallsSuperFinalize::0 bad 0.002
FinalizeOnlyCallsSuperFinalize::1 ok 0.003
FinalizeOverloaded::0 bad 0.001
FinalizeOverloaded::1 ok 0.001
FinalizeShouldBeProtected::0 public finalize 0.002
FinalizeShouldBeProtected::1 finalize with some params 0.001
FinalizeShouldBeProtected::2 legitimate overriding 0.002

AccessNodeTest

testAbstract 0
testPackagePrivate 0
testFinal 0
testVolatile 0
testPrivate 0
testSynchronized 0
testProtected 0
testModifiersOnClassDecl 0
testNative 0
testPublic 0
testTransient 0
testStatic 0
testStrict 0

AvoidDuplicateLiteralsRuleTest

testAll 0.025
testStringParserEmptyString 0
testStringParserEscapedEscapedChar 0
testStringParserSimple 0
testStringParserEscapedChar 0

ControversialRulesTest

AssignmentInOperand::0 bad 0.003
AssignmentInOperand::1 ok 0.002
AssignmentInOperand::2 assignment in if conditional expression 0.002
AssignmentInOperand::3 assignment in while conditional expression 0.003
AssignmentInOperand::4 ok 0.002
AssignmentInOperand::5 assignment in for conditional expression 0.003
AssignmentInOperand::6 increment in if conditional expression 0.002
AssignmentInOperand::7 assignment in while conditional expression, allowed 0.002
AssignmentInOperand::8 assignment in if conditional expression, allowed 0.002
AssignmentInOperand::9 assignment in for conditional expression, allowed 0.002
AssignmentInOperand::10 increment in if conditional expression, allowed 0.002
AtLeastOneConstructor::0 ok 0.002
AtLeastOneConstructor::1 simple failure case 0.002
AtLeastOneConstructor::2 inner bad, outer ok 0.002
AtLeastOneConstructor::3 inner ok, outer bad 0.003
AtLeastOneConstructor::4 inner and outer both bad 0.004
AtLeastOneConstructor::5 inner and outer both ok 0.003
AtLeastOneConstructor::6 skip interfaces 0.002
AtLeastOneConstructor::7 skip static classes 0.002
AtLeastOneConstructor::8 skip classes with only static methods 0.003
AtLeastOneConstructor::9 Don't skip classes with non-static methods; #1216 AtLeastOneConstructor ignores classes with *any* methods 0.002
AvoidFinalLocalVariable::0 Basic, common test case. 0.002
AvoidFinalLocalVariable::1 Other use of final should not raise violations. 0.002
AvoidFinalLocalVariable::2 Bug 2027626, False + : AvoidFinalLocalVariable 0.002
AvoidFinalLocalVariable::3 #1095 AvoidFinalLocalVariable false positive 0.003
AvoidLiteralsInIfCondition::0 basic test 0.004
AvoidLiteralsInIfCondition::1 basic test, part2 0.004
AvoidLiteralsInIfCondition::2 allow null literal 0.004
AvoidLiteralsInIfCondition::3 #1213 AvoidLiteralsInIfCondition -- switch for integer comparison with 0 0.004
AvoidLiteralsInIfCondition::4 #1213 AvoidLiteralsInIfCondition -- switch for integer comparison with 0.0 0.004
AvoidLiteralsInIfCondition::5 XPath error: An empty sequence is not allowed as the second argument of index-of() 0.004
AvoidPrefixingMethodParameters::0 AvoidPrefixingMethodParameters basic test case 0.002
AvoidPrefixingMethodParameters::1 AvoidPrefixingMethodParameters basic test case, no violation 0.002
AvoidPrefixingMethodParameters::2 AvoidPrefixingMethodParameters basic test case, only one parameter is prefixed 0.002
AvoidPrefixingMethodParameters::3 AvoidPrefixingMethodParameters limit: if parameters is named in or out, report a violation. 0.002
AvoidPrefixingMethodParameters::4 AvoidPrefixingMethodParameters basic test case: in is not a prefix, not using camel case in parameter name. 0.002
AvoidUsingNativeCode::0 Basic test case : using native code 0.002
AvoidUsingShortType::0 Short as field 0.002
AvoidUsingShortType::1 Short as local variable 0.002
AvoidUsingShortType::2 Short as method return type 0.002
AvoidUsingShortType::3 Short as method return type 0.002
AvoidUsingVolatile::0 Basic test case 0.002
BooleanInversion::0 failure, unary assignment 0.002
BooleanInversion::1 pass, bitwise assignment 0.002
BooleanInversion::2 pass, not a straight unary inversion 0.002
CallSuperInConstructor::0 TEST1 0.002
CallSuperInConstructor::1 TEST2 0.002
CallSuperInConstructor::2 don't flag classes w/o extends 0.002
CallSuperInConstructor::3 Enum 0.002
DataflowAnomalyAnalysis::0 ok 0.003
DataflowAnomalyAnalysis::1 DD anomaly 0.002
DataflowAnomalyAnalysis::2 DU anomaly 0.007
DataflowAnomalyAnalysis::3 UR anomaly 0.005
DataflowAnomalyAnalysis::4 more komplex anomalysis 0.005
DefaultPackage::0 ok 0.004
DefaultPackage::1 bad 0.002
DefaultPackage::2 interface methods are always public 0.002
DefaultPackage::3 interface field are always public 0.002
DefaultPackage::4 bad 0.002
DoNotCallGarbageCollectionExplicitly::0 Basic test case 0.002
DoNotCallGarbageCollectionExplicitly::1 Alernate Basic test case 0.002
DoNotCallGarbageCollectionExplicitly::2 Call in a constructor 0.002
DontImportSun::0 bad, import from sun. 0.002
DontImportSun::1 ok, signal is ok 0.002
NullAssignment::0 initial assignment 0.002
NullAssignment::1 bad assignment 0.002
NullAssignment::2 check test 0.002
NullAssignment::3 null param on right hand sidel 0.002
NullAssignment::4 null assignment in ternary 0.002
NullAssignment::5 null assignment in ternary, part deux 0.002
NullAssignment::6 comparison is not assignment 0.002
NullAssignment::7 final fields must be assigned 0.002
NullAssignment::8 1556594 - Wonky detection of NullAssignment 0.003
OneDeclarationPerLine::0 OneDeclarationPerLine's basic test case 0.004
OneDeclarationPerLine::1 OneDeclarationPerLine's potential false+ 0.003
OneDeclarationPerLine::2 #1221 OneDeclarationPerLine really checks for one declaration each statement 0.004
OneDeclarationPerLine::3 #1221 OneDeclarationPerLine really checks for one declaration each statement 0.003
OnlyOneReturn::0 two returns 0.002
OnlyOneReturn::1 one 0.002
OnlyOneReturn::2 none 0.002
OnlyOneReturn::3 void 0.002
OnlyOneReturn::4 finally 0.002
OnlyOneReturn::5 return inside anonymous inner class 0.003
SuspiciousOctalEscape::0 should be flagged 0.002
SuspiciousOctalEscape::1 should be flagged - different octal 0.002
SuspiciousOctalEscape::2 should be flagged - different octal 0.002
SuspiciousOctalEscape::3 [ 2050064 ] False + SuspiciousOctalEscape with backslash literal 0.002
SuspiciousOctalEscape::4 [ 2050064 ] False + SuspiciousOctalEscape with backslash literal, second test case 0.002
UnnecessaryConstructor::0 simple failure case 0.002
UnnecessaryConstructor::1 private constructor 0.002
UnnecessaryConstructor::2 constructor with arguments 0.002
UnnecessaryConstructor::3 constructor with contents 0.002
UnnecessaryConstructor::4 constructor throws exception 0.003
UnnecessaryConstructor::5 two constructors 0.002
UnnecessaryConstructor::6 inner class with unnecessary constructor 0.003
UnnecessaryConstructor::7 inner and outer both have unnecessary constructors 0.003
UnnecessaryConstructor::8 inner and outer, both ok 0.003
UnnecessaryConstructor::9 inner ok, outer bad 0.002
UnnecessaryConstructor::10 inner ok due to nonpublic constructor 0.003
UnnecessaryConstructor::11 constructor calls super 0.003
UnnecessaryConstructor::12 constructor calls super, no args 0.003
UnnecessaryParentheses::0 failure case, returning literal 0.002
UnnecessaryParentheses::1 ok, complex expression 0.002
UnnecessaryParentheses::2 bad, returning variable in parens 0.003
UnnecessaryParentheses::3 ok, returning comparison 0.003
UnnecessaryParentheses::4 typecast 0.003
UseConcurrentHashMap::0 Basic use case 0.002
UseConcurrentHashMap::1 #1034 UseConcurrentHashMap flags calls to methods that return Map 0.003
UseObjectForClearerAPI::0 No issues here 0.009
UseObjectForClearerAPI::1 0

ReportTest

testBasic 0.001
testExclusionsInReportWithAnnotationsFullName 0.002
testExclusionsInReportWithNOPMD 0.001
testExclusionsInReportWithNOPMDEcmascript 0.103
testMetric0 0
testMetric1 0
testTreeIterator 0.001
testSortedReport_File 0.015
testSortedReport_Line 0.001
testExclusionsInReportWithRuleViolationSuppressRegex 0.001
testExclusionsInReportWithRuleViolationSuppressXPath 0.034
testExclusionsInReportWithAnnotations 0.002
testSummary 0.001
testListener 0

UnusedImportsTest

UnusedImports::0 simple unused single type import 0.001
UnusedImports::1 one used single type import 0.001
UnusedImports::2 2 unused single-type imports 0.001
UnusedImports::3 1 used single type import 0.001
UnusedImports::4 1 import stmt, used only in throws clause 0.001
UnusedImports::5 for loop 0.001
UnusedImports::6 Generics 0.001
UnusedImports::7 Annotations 0
UnusedImports::8 Annotations 2 0.001
UnusedImports::9 import from default package 0.001
UnusedImports::10 import from default package 0.001
UnusedImports::11 On demand import 0.001
UnusedImports::12 imports used in javadoc comment, see also bug #254 0.001

CPDTaskTest

testBasic 2.422

PLSQLParserTest

testExceptions 0.02
testBOM 0

ControversialRulesTest

AvoidWithStatement::0 Basic case 0.002

TypeMapTest

testContainsString 0
testTypeFor 0
testSize 0
testAddClassOfQ 0
testContainsClassOfQ 0

StatementAndBraceFinderTest

testLabelledStmtHasCorrectTypes 0.022
testWhileStmtHasCorrectTypes 0.003
testForStmtHasCorrectTypes 0
testOnlyWorksForMethodsAndConstructors 0
testExpressionParentChildLinks 0.001
testSimpleCaseStmtHasCorrectTypes 0.002
testIfStmtHasCorrectTypes 0.001
testVariableOrConstantDeclaratorParentChildLinks 0.002

DoublePropertyTest

testType 0
testConstructors 0
testValueFrom 0
testAsDelimitedString 0
testErrorForBad 0
testErrorFor 0

ApplierTest

testSimple 0

FormatterTest

testNull 0.001
testType 0.001

ASTFieldDeclarationTest

testWithEnum 0.002
testGetVariableName 0
testMultiDimensionalArray 0.001
testIsArray 0.009
testIsSyntacticallyPublic 0

EmptyRulesTest

EmptyCatchBlock::0 simple failure 0.008
EmptyCatchBlock::1 ok 0
EmptyCatchBlock::2 no catch with nested catch in finally 0.001
EmptyCatchBlock::3 multiple catch blocks 0.003
EmptyCatchBlock::4 empty try with finally 0.002
EmptyCatchBlock::5 InterruptedException is OK 0.002
EmptyCatchBlock::6 CloneNotSupportedException is OK 0.005
EmptyCatchBlock::7 single-line comment is not OK 0.001
EmptyCatchBlock::8 single-line comment is OK 0.002
EmptyCatchBlock::9 multiple-line comment is not OK 0.003
EmptyCatchBlock::10 multiple-line comment is OK 0.002
EmptyCatchBlock::11 Javadoc comment is not OK 0.002
EmptyFinallyBlock::0 empty try/catch/finally 0.002
EmptyFinallyBlock::1 try/finally, no catch 0.002
EmptyFinallyBlock::2 finally block with contents 0.002
EmptyFinallyBlock::3 multiple catch blocks with finally 0.002
EmptyIfStmt::0 one empty 0.003
EmptyIfStmt::1 one not empty 0.002
EmptyIfStmt::2 empty statement 0.002
EmptyIfStmt::3 empty if statement with comment 0.002
EmptyInitializer::0 failure case (non static) 0.002
EmptyInitializer::1 failure case (static) 0.002
EmptyInitializer::2 not an initializer 0.002
EmptyInitializer::3 initializer not empty 0.002
EmptyStatementBlock::0 failure case 0.002
EmptyStatementBlock::1 statement block not empty 0.002
EmptyStatementBlock::2 not a statement block 0.002
EmptyStatementNotInLoop::0 ok, semicolon after for 0.002
EmptyStatementNotInLoop::1 ok, semicolon after while 0.002
EmptyStatementNotInLoop::2 bad, random semicolon 0.003
EmptyStatementNotInLoop::3 bad, double semicolon 0.002
EmptyStatementNotInLoop::4 ok, nested class 0.003
EmptyStaticInitializer::0 bad 0.002
EmptyStaticInitializer::1 ok 0.002
EmptySwitchStatements::0 bad 0.002
EmptySwitchStatements::1 ok 0.002
EmptySynchronizedBlock::0 bad 0.003
EmptySynchronizedBlock::1 ok 0.003
EmptyTryBlock::0 bad 0.003
EmptyTryBlock::1 bad 0.002
EmptyTryBlock::2 ok 0.003
EmptyWhileStmt::0 bad 0.003
EmptyWhileStmt::1 while(true); 0.003

AttributeAxisIteratorTest

testRemove 0

VariableAccessTest

testGetVariableName 0

EcmascriptParserTest

testCaseAsIdentifier 0.001
testXorAssignment 0.005
testSuppresionComment 0
testArrayAccess 0.002
testArrayMethod 0
testVoidKeyword 0.001
testLineNumbers 0
testLineNumbersWithinEcmascriptRules 0

GlobalScopeTest

testEnums 0
testClassDeclAppears 0

ClassDeclTest

testAbstract 0
testPublicFinal 0
testFinal 0.001
testPublic 0
testStrict 0.001

BasicJsfRulesTest

DontNestJsfInJstlIteration::0 A violation. 0.001

ASTMethodDeclarationTest

testGetVariableName 0

XPathCLITest

runXPath 0.005

JspParserTest

testParseDollar 0.002

JavaRuleViolationTest

testMethodName 0.001
testASTFormalParameterVariableName 0

MetricTest

testGetCount 0
testGetTotal 0
testGetStandardDeviation 0
testGetLowValue 0
testGetAverage 0
testGetHighValue 0
testGetMetricName 0

EmacsRendererTest

testNullPassedIn 0
testError 0
testRendererMultiple 0.001
testRenderer 0
testRendererEmpty 0

AttributeTest

testConstructor 0

FileReporterTest

testCreation 0.001
testInvalidFile 0
testEmptyReport 0
testReport 0

DataFlowNodeTest

testRemovePathWithNonChild 0
testAddPathToChild 0
testRemovePathToChild 0
testSetType 0
testReverseParentPathsTo 0

ClassTypeResolverTest

testBinaryStringPromotion 0
testBinaryNumericOperators 0
testBinaryLogicalOperators 0
testUnaryNumericOperators 0
testUnaryLogicalOperators 0.001
testAssignmentOperators 0.004
testClassNameExists 0.001
testAnonymousInnerClass 0.002
testExtraTopLevelClass 0
testInnerClass 0.001
testBinaryNumericPromotion 0.018
testEnumAnonymousInnerClass 0
testUnaryNumericPromotion 0
acceptanceTest 0.001
testLiterals 0.002

CLITest

changeJavaVersion 0.127
minimalArgs 0.094
testWrongRulename 0.015
testWrongRulesetWithRulename 0.008
useEcmaScript 0.047
usingDebug 0.118
testWrongRuleset 0.007
minimumPriority 0.076

ASTThrowStatementTest

testGetFirstASTNameImageNull 0
testGetFirstASTNameImageNew 0

StringsRulesTest

AppendCharacterWithChar::0 appending single character string, should fail 0.001
AppendCharacterWithChar::1 appending single char, should be ok 0.001
AppendCharacterWithChar::2 this is probably wrong, but shouldn't fail 0.002
AppendCharacterWithChar::3 concatenates a three character int 0.002
AppendCharacterWithChar::4 concatenates a string explicitly set to 1 character, not explicitly checking right now 0.001
AppendCharacterWithChar::5 for statement 0.002
AppendCharacterWithChar::6 concatenates an escaped character 0.002
AppendCharacterWithChar::7 concatenates all escaped characters 0.001
AppendCharacterWithChar::8 concatenates a single upper case 0.003
AppendCharacterWithChar::9 concatenates a single number 0.002
AppendCharacterWithChar::10 concatenates a single character & 0.002
AppendCharacterWithChar::11 concatenates two characters 0.002
AppendCharacterWithChar::12 a single octal character 0.002
AppendCharacterWithChar::13 octal character in longer string 0.001
AvoidStringBufferField::0 Basic test case for AvoidStringBufferField 0.002
ConsecutiveAppendsShouldReuse::0 1, Single append, should be ok 0.002
ConsecutiveAppendsShouldReuse::1 2, Consecutive appends with reuse, should be ok 0.002
ConsecutiveAppendsShouldReuse::2 3, Single append on different method, should be ok 0.002
ConsecutiveAppendsShouldReuse::3 4, Single append on different objects, should be ok 0.003
ConsecutiveAppendsShouldReuse::4 5, Consecutive literal appends without reuse, not ok 0.002
ConsecutiveAppendsShouldReuse::5 6, Consecutive variable appends without reuse, not ok 0.001
ConsecutiveAppendsShouldReuse::6 7, Consecutive appends in different blocks, should be ok 0.002
ConsecutiveAppendsShouldReuse::7 #1180 False Positive for ConsecutiveAppendsShouldReuse on different variable names 0.002
ConsecutiveLiteralAppends::0 1, Single append, should be ok 0.001
ConsecutiveLiteralAppends::1 2, Back to back append, not ok 0.002
ConsecutiveLiteralAppends::2 2, re-running with threshold 0.001
ConsecutiveLiteralAppends::3 3, Appends broken up by variable 0.001
ConsecutiveLiteralAppends::4 4, Appends with literal appends 0.001
ConsecutiveLiteralAppends::5 5, Appends broken up by while loop 0.002
ConsecutiveLiteralAppends::6 6, Appends, then a variable 0.002
ConsecutiveLiteralAppends::7 7, Appends, then a variable 0.002
ConsecutiveLiteralAppends::8 8, Appends, then a while 0.002
ConsecutiveLiteralAppends::9 9, Multiple appends in same while 0.002
ConsecutiveLiteralAppends::10 10, Multiple appends in same while, with multiple outside that while 0.002
ConsecutiveLiteralAppends::11 11, Multiple appends in same while, none outside the loop 0.002
ConsecutiveLiteralAppends::12 12, Two loops, not concurrent appends though 0.004
ConsecutiveLiteralAppends::13 13, A bunch of loops, but nothing concurrent 0.004
ConsecutiveLiteralAppends::14 14, A bunch of loops, one concurrent 0.004
ConsecutiveLiteralAppends::15 15, A bunch of loops, none concurrent, separated by else 0.004
ConsecutiveLiteralAppends::16 16, Additive Expression 1 0.003
ConsecutiveLiteralAppends::17 17, Additive Expression 2 0.002
ConsecutiveLiteralAppends::18 18, End with literal append 0.003
ConsecutiveLiteralAppends::19 19, A bunch of appends 0.003
ConsecutiveLiteralAppends::20 20, Suffix append follwed by real append 0.003
ConsecutiveLiteralAppends::21 21, Appends separated by an if 0.003
ConsecutiveLiteralAppends::22 22, calls to methods in append 0.003
ConsecutiveLiteralAppends::23 23, force 2 failures on 3 lines 0.003
ConsecutiveLiteralAppends::24 23, re-running with threshold 0.003
ConsecutiveLiteralAppends::25 24, Appends from within switch statement 0.004
ConsecutiveLiteralAppends::26 25, Appends from within several different ifs 0.003
ConsecutiveLiteralAppends::27 26, One append in if, one in else 0.003
ConsecutiveLiteralAppends::28 27, Concurrent Appends from within switch statement 0.004
ConsecutiveLiteralAppends::29 28, Additive inside an if statement 0.003
ConsecutiveLiteralAppends::30 29, Adding two strings only 0.003
ConsecutiveLiteralAppends::31 30, Method call in append 0.003
ConsecutiveLiteralAppends::32 31, Adding two strings together then another append 0.002
ConsecutiveLiteralAppends::33 32, Including the constructor's string 0.003
ConsecutiveLiteralAppends::34 33, Additive in the constructor 0.003
ConsecutiveLiteralAppends::35 34, Additive in the constructor 0.002
ConsecutiveLiteralAppends::36 35, For block without braces 0.003
ConsecutiveLiteralAppends::37 36, Appends broken up by method call 0.003
ConsecutiveLiteralAppends::38 37, Intervening method call not related to append 0.003
ConsecutiveLiteralAppends::39 38, Intervening method call not related to append 0.002
ConsecutiveLiteralAppends::40 39, Buffer as class variable, accessed in 2 methods 0.003
ConsecutiveLiteralAppends::41 40, Call to external method with subtraction 0.003
ConsecutiveLiteralAppends::42 41, Call to external method with addition, not string appending 0.003
ConsecutiveLiteralAppends::43 42, Using variable string array 0.001
ConsecutiveLiteralAppends::44 43, Using variable char array 0
skipped
ConsecutiveLiteralAppends::44 43, Using variable char array 0
ConsecutiveLiteralAppends::45 44, Appending of not String additive expressions 0.001
ConsecutiveLiteralAppends::46 #1175 false positive for StringBuilder.append called 2 consecutive times 0.002
InefficientEmptyStringCheck::0 test is ok, ok 0.002
InefficientEmptyStringCheck::1 String.trim.length is called, should have failed 0.001
InefficientEmptyStringCheck::2 String.trim.length not is called, ok 0.001
InefficientEmptyStringCheck::3 String.trim.length is called, should have failed 0.001
InefficientEmptyStringCheck::4 String.trim.length is called, assigned to int, ok 0.002
InefficientEmptyStringCheck::5 String.trim.length is called, assigned to boolean, should have failed 0.001
InefficientEmptyStringCheck::6 Using trim.length to find the length and compare to 1, OK 0.001
InefficientEmptyStringCheck::7 Passes trim().length() and 0 to another method 0.002
InefficientEmptyStringCheck::8 Compares the length against a mathematical function 0.001
InefficientStringBuffering::0 concatenating a literal to a method return value 0.002
InefficientStringBuffering::1 same as TEST1, but in SB constructor 0.001
InefficientStringBuffering::2 chained appends 0.002
InefficientStringBuffering::3 concatenating two literals in SB constructor 0.001
InefficientStringBuffering::4 concatenating two literals post-construction 0.001
InefficientStringBuffering::5 case where concatenation is not a child of a BlockStatement, but instead is a child of an ExplicitConstructorInvocation 0.002
InefficientStringBuffering::6 don't error out on array instantiation 0.001
InefficientStringBuffering::7 usage of the StringBuffer constructor that takes an int 0.001
InefficientStringBuffering::8 nested 0.001
InefficientStringBuffering::9 looking up too high 0.001
InefficientStringBuffering::10 looking too deep 0.002
InefficientStringBuffering::11 concatenating two non-literals 0.001
InefficientStringBuffering::12 concatenating method + int 0.007
InefficientStringBuffering::13 JTextArea.append 0.003
InefficientStringBuffering::14 don't get thrown off by a buried literal 0.002
InefficientStringBuffering::15 sb.delete shouldn't trigger it 0.002
InefficientStringBuffering::16 skip additions involving static finals, compiler will do constant folding for these 0.002
InefficientStringBuffering::17 for statement without braces 0.002
InefficientStringBuffering::18 if statement without braces 0.002
InefficientStringBuffering::19 3 args version of StringBuffer.append 0.001
InefficientStringBuffering::20 compile-time concats are ok 0.001
InefficientStringBuffering::21 compile-time concats are ok, v2 0.001
InefficientStringBuffering::22 1503099, init with two string lengths 0.001
InefficientStringBuffering::23 1503099, append with two string lengths 0.002
InefficientStringBuffering::24 3109408, false + with adding two integers in constructor 0.002
InefficientStringBuffering::25 1503099, adding two integers 0.002
InsufficientStringBufferDeclaration::0 1, StringBuffer allocated with enough space 0.003
InsufficientStringBufferDeclaration::1 2, StringBuffer not allocated with enough space 0.002
InsufficientStringBufferDeclaration::2 3, StringBuffer allocated with space 0.001
InsufficientStringBufferDeclaration::3 4, StringBuffer allocated from variable 0.001
InsufficientStringBufferDeclaration::4 5, creating a new StringBuffer 0.002
InsufficientStringBufferDeclaration::5 6, Initialize with a specific String 0.001
InsufficientStringBufferDeclaration::6 7, appends inside if statements 0.002
InsufficientStringBufferDeclaration::7 8, Field level variable 0.002
InsufficientStringBufferDeclaration::8 9, Field level variable 0.001
InsufficientStringBufferDeclaration::9 10, Appending non-literals 0.001
InsufficientStringBufferDeclaration::10 11, Initialized to null 0.002
InsufficientStringBufferDeclaration::11 12, Passed in as parameter 0.002
InsufficientStringBufferDeclaration::12 13, compound append 0.001
InsufficientStringBufferDeclaration::13 14, Compound append, presized just fine 0.002
InsufficientStringBufferDeclaration::14 15, Append int, incorrect presize 0.001
InsufficientStringBufferDeclaration::15 16, Append int, properly presized 0.002
InsufficientStringBufferDeclaration::16 17, Append char, incorrect presize 0.001
InsufficientStringBufferDeclaration::17 18, Append char, properly presized 0.002
InsufficientStringBufferDeclaration::18 19, String concatenation, incorrect presize 0.001
InsufficientStringBufferDeclaration::19 20, String concatenation with non-literal, incorrect presize 0.002
InsufficientStringBufferDeclaration::20 21, Incorrectly presized twice 0.002
InsufficientStringBufferDeclaration::21 22, appends inside if/else if/else statements 0.001
InsufficientStringBufferDeclaration::22 23, appends inside if/else if/else statements 0.002
InsufficientStringBufferDeclaration::23 24, appends inside if/else if/else statements 0.002
InsufficientStringBufferDeclaration::24 25, Compound ifs 0.002
InsufficientStringBufferDeclaration::25 26, Compound if, pushed over the edge 0.002
InsufficientStringBufferDeclaration::26 28, Compound if, pushed over the edge 0.002
InsufficientStringBufferDeclaration::27 27, Switch statement doesn't exceed 16 characters 0.001
InsufficientStringBufferDeclaration::28 29, Appending from a cast 0.002
InsufficientStringBufferDeclaration::29 30, Appending chars 0.001
InsufficientStringBufferDeclaration::30 31, Appending from a cast in ifs 0.003
InsufficientStringBufferDeclaration::31 32, Constructor from math 0.002
InsufficientStringBufferDeclaration::32 33, Uses setLength 0.002
InsufficientStringBufferDeclaration::33 34, Uses setLength incorrectly 0.001
InsufficientStringBufferDeclaration::34 35, Append of 'null' literal. 0.002
InsufficientStringBufferDeclaration::35 36, Append of boolean literal. 0.001
InsufficientStringBufferDeclaration::36 37, Initialization with multiply - bug 1743938 0.002
InsufficientStringBufferDeclaration::37 38, Uses setLength 0 with subsequently more than 16, but less than initial 0.001
InsufficientStringBufferDeclaration::38 3175710: NPE in InsufficientStringBufferDeclaration 0.003
InsufficientStringBufferDeclaration::39 3516101: InsufficientStringBufferDeclaration fails to parse hex 0.001
InsufficientStringBufferDeclaration::40 Append a hex int 0.002
StringBufferInstantiationWithChar::0 OK 0.001
StringBufferInstantiationWithChar::1 failure case 0.002
StringInstantiation::0 new 'new String's 0.001
StringInstantiation::1 new String array 0.001
StringInstantiation::2 using multiple parameter constructor 0.002
StringInstantiation::3 using 4 parameter constructor 0.002
StringInstantiation::4 byte array constructor is ok 0.002
StringInstantiation::5 Method returning new String 0.002
StringInstantiation::6 Not a new String 0.003
StringInstantiation::7 Returns new String(str) 0.002
StringToString::0 local var 0.003
StringToString::1 parameter 0.001
StringToString::2 field 0.002
StringToString::3 primitive 0.001
StringToString::4 multiple similar params 0.001
StringToString::5 string array 0.002
StringToString::6 ToString on String Array Object 0.001
StringToString::7 Should only look at toString's of Arrays 0.002
StringToString::8 #959 StringToString False Positive 0.003
UnnecessaryCaseChange::0 failure case with toUpperCase().equals() 0.002
UnnecessaryCaseChange::1 failure case with toLowerCase().equals() 0.001
UnnecessaryCaseChange::2 failure case with toUpperCase().equalsIgnoreCase() 0.002
UnnecessaryCaseChange::3 don't flag toUpperCase() invocations with Locale args 0.001
UnnecessaryCaseChange::4 failure case with toLowerCase().equals() 0.002
UseEqualsToCompareStrings::0 failure case using == 0.001
UseEqualsToCompareStrings::1 failure case using != 0.001
UseEqualsToCompareStrings::2 using equals, OK 0.002
UseEqualsToCompareStrings::3 using compareTo, OK 0.001
UseEqualsToCompareStrings::4 using length, OK 0.001
UseIndexOfChar::0 failure case 0.002
UseIndexOfChar::1 using single quotes, OK 0.001
UseIndexOfChar::2 indexOf multi-character literal, OK 0.001
UseIndexOfChar::3 using indexOf(singleCharString, int) 0.002
UseIndexOfChar::4 using lastIndexOf(singleCharString) 0.001
UseIndexOfChar::5 complicated expressions are ok 0.001
UseIndexOfChar::6 all escaped characters 0.002
UseIndexOfChar::7 a single octal character 0.001
UseIndexOfChar::8 octal character in longer string 0.001
UseIndexOfChar::9 UseIndexOfChar: null pointer with lambdas 0.002
UseIndexOfChar::10 #1211 PMD is failing with NPE for rule UseIndexOfChar while analyzing Jdk 8 Lambda expression 0.003
UseStringBufferLength::0 Using length properly 0.002
UseStringBufferLength::1 StringBuffer.toString.equals(""), bad 0.002
UseStringBufferLength::2 StringBuffer.toString.equals("foo"), ok 0.001
UseStringBufferLength::3 StringBuffer.toString.length(), bad 0.002
UseStringBufferLength::4 no literals 0.001
UseStringBufferLength::5 empty + non-empty string sb.toString().equals("" + "x"), ok (as in: do not use StringBuffer.length()) 0.001
UseStringBufferLength::6 sb.toString().trim().equals(""), ok (as in: do not use StringBuffer.length()) 0.002
UseStringBufferLength::7 sb.toString().equals(baz("")), ok 0.001
UseStringBufferLength::8 sb.toString().trim().length == 0, ok (as in: do not use StringBuffer.length()) 0.002
UseStringBufferLength::9 #1177 Incorrect StringBuffer warning when that class is not used 0.001
UselessStringValueOf::0 valueOf in concatenation 0.002
UselessStringValueOf::1 valueOf in String conversion 0.001
UselessStringValueOf::2 valueOf as first expression in concatenation 0.001
UselessStringValueOf::3 valueOf as first/last expression in concatenation 0.002
UselessStringValueOf::4 valueOf as first/last expression in concatenation 0.001
UselessStringValueOf::5 [ 1977438 ] False positive for UselessStringValueOf 0.001
UselessStringValueOf::6 #976 False positive for UselessStringValueOf 0.002
UselessStringValueOf::7 #1084 NPE at UselessStringValueOfRule.java:36 0.002

DBTypeTest

testGetPropertiesFromFile 0.001
testGetIncludeProperties 0.003
testGetProperties 0.012
testAsProperties 0

VariableNameDeclarationTest

testPrimitiveType 0
testPrimitiveTypeImage 0
testExceptionBlkParam 0
testRefTypeImage 0
testParamTypeImage 0
testArrayIsReferenceType 0
testIsArray 0
testConstructor 0

ASTImportDeclarationTest

testStaticImportFailsWithJDK14 0
testGetImportedNameNode 0
testImportOnDemand 0
testStaticImport 0

PLSQLXPathRuleTest

testXPathRule1 0.001
testXPathRule2 0.001
testXPathRule1Compatibility 0.001

AbstractDomXmlRuleTest

dtdIsNotLookedUp 0.002
testVisit 0.01
xsdIsNotLookedUp 0.002

ResourceLoaderTest

testGetResourceStream 0.059

PropertyAccessorTest

testBooleans 0.003
testIntegers 0
testFloats 0
skipped
testStrings 0

StringPropertyTest

testType 0
testConstructors 0
testValueFrom 0
testAsDelimitedString 0
testErrorForBad 0.001
testErrorFor 0

XPathRuleTest

testFollowingSibling 0.003
testPluginname 0.001
testImageOfPrimarySuffix 0.005
testVariables 0.001

CloneMethodMustImplementCloneableTest

CloneMethodMustImplementCloneable::0 ok, implements Cloneable 0.002
CloneMethodMustImplementCloneable::1 bad, doesn't implement Cloneable 0.002
CloneMethodMustImplementCloneable::2 ok, not Object.clone since method has a param 0.002
CloneMethodMustImplementCloneable::3 ok, doesn't implement Cloneable but only throw CloneNotSupportedException 0.001
CloneMethodMustImplementCloneable::4 ok, inner class implements Cloneable 0.002
CloneMethodMustImplementCloneable::5 ok, implements interface in same package which extends Cloneable 0.002
CloneMethodMustImplementCloneable::6 ok, implements interface imported implicitly which extends Cloneable 0.001
CloneMethodMustImplementCloneable::7 ok, implements interface which extends Cloneable 0.001
CloneMethodMustImplementCloneable::8 ok, extends superclass AND implements cloneable 0.002
CloneMethodMustImplementCloneable::9 Bug 1698550, nr 1 0.002
CloneMethodMustImplementCloneable::10 Bug 1698550, nr 2 0.002
CloneMethodMustImplementCloneable::11 Bug 1765613, NullPointerException on enum 0.001

CodesizeRulesTest

CyclomaticComplexity::0 Simple method 0.003
CyclomaticComplexity::1 testLessComplicatedThanReportLevel 0.002
CyclomaticComplexity::2 Complicated method 0.003
CyclomaticComplexity::3 Constructor 0.001
CyclomaticComplexity::4 Testing new parameter showClassMethods 0.003
CyclomaticComplexity::5 Testing new parameter showMethodsMethods 0.002
CyclomaticComplexity::6 Testing default value of showClassMethods and showClassesComplexity 0.002
CyclomaticComplexity::7 #984 Cyclomatic complexity should treat constructors like methods: 1 - showMethodsComplexity=true 0.002
CyclomaticComplexity::8 #984 Cyclomatic complexity should treat constructors like methods: 2 - showMethodsComplexity=false 0.002
CyclomaticComplexity::9 #985 Suppressed methods shouldn't affect avg CyclomaticComplexity 0.001
ExcessiveClassLength::0 short 0.002
ExcessiveClassLength::1 long 0.001
ExcessiveClassLength::2 long class - changed minimum 0.002
ExcessiveMethodLength::0 short 0.001
ExcessiveMethodLength::1 long, normal range 0.002
ExcessiveMethodLength::2 long, minimum with longer range 0.002
ExcessiveMethodLength::3 not quite long 0.001
ExcessiveMethodLength::4 long 0.002
ExcessiveParameterList::0 short 0.001
ExcessiveParameterList::1 long 0.002
ExcessivePublicCount::0 Few public fields 0.001
ExcessivePublicCount::1 Too many public fields 0.001
ExcessivePublicCount::2 Static final 0.001
ExcessivePublicCount::3 Some public methods 0.001
ExcessivePublicCount::4 Reduced minimum 0.001
ExcessivePublicCount::5 Private fields 0.002
ExcessivePublicCount::6 Private methods 0.001
ModifiedCyclomaticComplexity::0 Simple method 0.001
ModifiedCyclomaticComplexity::1 testLessComplicatedThanReportLevel 0.002
ModifiedCyclomaticComplexity::2 Complicated method 0.002
ModifiedCyclomaticComplexity::3 Constructor 0.001
NPathComplexity::0 ok 0.002
NPathComplexity::1 fail, with minimum 0.001
NPathComplexity::2 failure case 0.002
NPathComplexity::3 test case for bug 3484404 (Invalid NPath calculation in return statement) 0.002
NPathComplexity::4 test case for bug 3484404 (Invalid NPath calculation in return statement) with minimum 25 0.002
NcssConstructorCount::0 short 0.001
NcssConstructorCount::1 lots of comments 0.002
NcssConstructorCount::2 long method 0.002
NcssConstructorCount::3 long method - changed minimum 0.002
NcssMethodCount::0 short 0.001
NcssMethodCount::1 lots of comments 0.001
NcssMethodCount::2 long method 0.001
NcssMethodCount::3 long method - changed minimum 0.002
NcssTypeCount::0 short 0.001
NcssTypeCount::1 lots of comments 0.002
NcssTypeCount::2 long method 0.001
NcssTypeCount::3 long method - changed minimum 0.002
StdCyclomaticComplexity::0 Simple method 0.002
StdCyclomaticComplexity::1 Simple method 0.001
StdCyclomaticComplexity::2 Complicated method 0.002
StdCyclomaticComplexity::3 Constructor 0.001
StdCyclomaticComplexity::4 Testing new parameter showClassMethods 0.002
StdCyclomaticComplexity::5 Testing new parameter showMethodsMethods 0.003
StdCyclomaticComplexity::6 Testing default value of showClassMethods and showClassesComplexity 0.002
StdCyclomaticComplexity::7 #984 Cyclomatic complexity should treat constructors like methods: 1 - showMethodsComplexity=true 0.001
StdCyclomaticComplexity::8 #984 Cyclomatic complexity should treat constructors like methods: 2 - showMethodsComplexity=false 0.002
StdCyclomaticComplexity::9 #985 Suppressed methods shouldn't affect avg CyclomaticComplexity 0.002
TooManyFields::0 3 fields, max is 15 0.002
TooManyFields::1 3 fields, reduced max to 2 0.002
TooManyFields::2 16 fields, bad 0.002
TooManyFields::3 12 fields, but 6 in inner and 6 in outer 0.001
TooManyFields::4 outer class, inner interface, both OK 0.002
TooManyFields::5 interface with 10 fields 0.001
TooManyFields::6 2 inner classes, each with > 10 fields 0.002
TooManyFields::7 anonymous class with a field 0.002
TooManyFields::8 lots of static finals, those are ok 0.001
TooManyMethods::0 Less than 10 methods. 0.002
TooManyMethods::1 More than 10 methods. 0.002
TooManyMethods::2 Less than 10 methods, with getter/setter... 0.001

VmParserTest

testParser2 0.013
testParser3 0.001
testParser 0.001

JunitRulesTest

JUnitAssertionsShouldIncludeMessage::0 assertEquals ok 0.001
JUnitAssertionsShouldIncludeMessage::1 assertEquals bad 0.002
JUnitAssertionsShouldIncludeMessage::2 assertTrue ok 0.001
JUnitAssertionsShouldIncludeMessage::3 assertTrue bad 0.001
JUnitAssertionsShouldIncludeMessage::4 assertNull OK 0.002
JUnitAssertionsShouldIncludeMessage::5 assertNull bad 0.001
JUnitAssertionsShouldIncludeMessage::6 assertSame OK 0.002
JUnitAssertionsShouldIncludeMessage::7 assertSame badd 0.001
JUnitAssertionsShouldIncludeMessage::8 assertNotNull OK 0.001
JUnitAssertionsShouldIncludeMessage::9 assertNotNull bad 0.002
JUnitAssertionsShouldIncludeMessage::10 find that pesky bug 0.001
JUnitAssertionsShouldIncludeMessage::11 assertFalse ok 0.001
JUnitAssertionsShouldIncludeMessage::12 assertFalse bad 0.002
JUnitAssertionsShouldIncludeMessage::13 Not a JUnit test - assertEquals bad 0.001
JUnitAssertionsShouldIncludeMessage::14 JUnit 4 - assertEquals 0.001
JUnitSpelling::0 setUp mispellings 0.002
JUnitSpelling::1 tearDown mispellings 0.001
JUnitSpelling::2 ok 0.002
JUnitSpelling::3 unrelated methods 0.001
JUnitSpelling::4 overloaded setUp 0.002
JUnitSpelling::5 No problem - not a JUnit test 0.001
JUnitStaticSuite::0 nonstatic is bad 0.002
JUnitStaticSuite::1 public static with no params is OK 0.001
JUnitStaticSuite::2 private suite() is bad 0.002
JUnitStaticSuite::3 if there are params, just skip it 0.001
JUnitStaticSuite::4 Not a JUnit test (nonstatic is bad) 0.002
JUnitTestContainsTooManyAsserts::0 JUnit 3 Test contains no assert 0.001
JUnitTestContainsTooManyAsserts::1 JUnit 4 Test contains no assert 0.001
JUnitTestContainsTooManyAsserts::2 JUnit 3 Test contains one assert 0.002
JUnitTestContainsTooManyAsserts::3 JUnit 4 Test contains one assert 0.001
JUnitTestContainsTooManyAsserts::4 JUnit 3 Test contains more than one assert 0.002
JUnitTestContainsTooManyAsserts::5 JUnit 4 Test contains more than one assert 0.001
JUnitTestContainsTooManyAsserts::6 JUnit 3 Test contains more than one assert, but allowed 0.001
JUnitTestContainsTooManyAsserts::7 JUnit 4 Test contains more than one assert, but allowed 0.002
JUnitTestsShouldIncludeAssert::0 Contains assert 0.001
JUnitTestsShouldIncludeAssert::1 Missing assert 0.001
JUnitTestsShouldIncludeAssert::2 All ok 0.002
JUnitTestsShouldIncludeAssert::3 Two wrong 0.001
JUnitTestsShouldIncludeAssert::4 Contains fail 0.002
JUnitTestsShouldIncludeAssert::5 One wrong 0.001
JUnitTestsShouldIncludeAssert::6 Skip interfaces 0.001
JUnitTestsShouldIncludeAssert::7 Skip abstract methods 0.001
JUnitTestsShouldIncludeAssert::8 Another fail() case 0.003
JUnitTestsShouldIncludeAssert::9 BUG 1105633 - False +: JUnit testcases could have fail() instead of assert 0.002
JUnitTestsShouldIncludeAssert::10 BUG 1146116 PMDException with inner interfaces 0.002
JUnitTestsShouldIncludeAssert::11 skip static test methods 0.002
JUnitTestsShouldIncludeAssert::12 exceptions shouldn't block it 0.001
JUnitTestsShouldIncludeAssert::13 Not a JUnit test (exceptions shouldn't block it) 0.001
JUnitTestsShouldIncludeAssert::14 JUnit 4 test (exceptions shouldn't block it) 0.001
JUnitTestsShouldIncludeAssert::15 Junit 4 static import 0.002
JUnitTestsShouldIncludeAssert::16 Junit 4 test using Assert.assert... 0.001
JUnitTestsShouldIncludeAssert::17 #968 Issues with JUnit4 @Test annotation with expected exception 0.002
SimplifyBooleanAssertion::0 assertFalse(!) 0.001
SimplifyBooleanAssertion::1 assertTrue(!) 0.002
SimplifyBooleanAssertion::2 ok 0.001
SimplifyBooleanAssertion::3 not a JUnit test - assertFalse(!) 0.002
SimplifyBooleanAssertion::4 JUnit 4 - assertFalse(!) 0.001
TestClassWithoutTestCases::0 failure case 0.002
TestClassWithoutTestCases::1 test method should be public 0.001
TestClassWithoutTestCases::2 inner class should get checked 0.001
TestClassWithoutTestCases::3 test method in inner class not valid 0.001
TestClassWithoutTestCases::4 abstract classes are ok 0.001
TestClassWithoutTestCases::5 ditto interfaces 0.001
TestClassWithoutTestCases::6 ditto enum 0.001
TestClassWithoutTestCases::7 ditto annotation 0.001
TestClassWithoutTestCases::8 failure case does not extend TestCase 0.001
UnnecessaryBooleanAssertion::0 failure case 0.002
UnnecessaryBooleanAssertion::1 variations 0.001
UnnecessaryBooleanAssertion::2 nested boolean literal 0.001
UnnecessaryBooleanAssertion::3 asserting true a ! 0.002
UnnecessaryBooleanAssertion::4 asserting false a ! 0.001
UnnecessaryBooleanAssertion::5 buz 0.002
UnnecessaryBooleanAssertion::6 not a JUnit test - failure case 0.002
UnnecessaryBooleanAssertion::7 JUnit 4 - failure case 0.002
UseAssertEqualsInsteadOfAssertTrue::0 TEST1 0.001
UseAssertEqualsInsteadOfAssertTrue::1 TEST2 0.002
UseAssertEqualsInsteadOfAssertTrue::2 TEST3 0.002
UseAssertEqualsInsteadOfAssertTrue::3 Not a JUnit test - TEST2 0.001
UseAssertEqualsInsteadOfAssertTrue::4 JUnit4 - TEST2 0.001
UseAssertNullInsteadOfAssertTrue::0 assertTrue with null 0.001
UseAssertNullInsteadOfAssertTrue::1 assertFalse with != null 0.002
UseAssertNullInsteadOfAssertTrue::2 assertTrue with x == y 0.001
UseAssertNullInsteadOfAssertTrue::3 Not a JUnit test - assertTrue with null 0.002
UseAssertNullInsteadOfAssertTrue::4 JUnit 4 - assertTrue with null 0.001
UseAssertSameInsteadOfAssertTrue::0 assert true a == b 0.008
UseAssertSameInsteadOfAssertTrue::1 assert true a != b 0.004
UseAssertSameInsteadOfAssertTrue::2 assert false a == b 0.003
UseAssertSameInsteadOfAssertTrue::3 assert false a != b 0.003
UseAssertSameInsteadOfAssertTrue::4 skip assertTrue(x == null), UseAssertNullInsteadOfAssertTrue will pick those up 0.002
UseAssertSameInsteadOfAssertTrue::5 bug 1626715, the null check in the rule shouldn't match the null outside the assert method 0.002
UseAssertSameInsteadOfAssertTrue::6 assert true a == b BUT not a Junit test 0.001
UseAssertSameInsteadOfAssertTrue::7 JUnit 4 - assert true a == b 0.002
UseAssertTrueInsteadOfAssertEquals::0 JUnit Test contains assertEquals on other than boolean literal 0.001
UseAssertTrueInsteadOfAssertEquals::1 JUnit Test contains assertEquals on boolean literal 0.002

IntegerPropertyTest

testErrorForBad 0
testType 0
testConstructors 0
testValueFrom 0
testAsDelimitedString 0
testErrorFor 0

ASTVariableDeclaratorIdTest

testAnnotations 0
testLambdaWithoutType 0
testIsExceptionBlockParameter 0
testTypeNameNode 0
testLambdaWithType 0

BracesRulesTest

ForLoopsMustUseBraces::0 simple failure case 0.002
ForLoopsMustUseBraces::1 ok 0.001
ForLoopsMustUseBraces::2 0.001
ForLoopsMustUseBraces::3 0.001
ForLoopsMustUseBraces::4 0.001
IfElseStmtsMustUseBraces::0 else without braces 0.001
IfElseStmtsMustUseBraces::1 ok 0.001
IfElseStmtsMustUseBraces::2 two sets of missing braces 0.001
IfElseStmtsMustUseBraces::3 elseif with missing braces 0.001
IfElseStmtsMustUseBraces::4 elseif with braces after else 0.002
IfElseStmtsMustUseBraces::5 elseif with missing braces, first braces on separate line 0.001
IfElseStmtsMustUseBraces::6 bug 976643 - nested ifs without braces 0.002
IfStmtsMustUseBraces::0 simple failure case 0.001
IfStmtsMustUseBraces::1 ok 0.001
IfStmtsMustUseBraces::2 nested ifs 0.001
WhileLoopsMustUseBraces::0 no braces 0.001
WhileLoopsMustUseBraces::1 with braces 0.001

StrictExceptionRulesTest

AvoidCatchingGenericException::0 failure case 0.002
AvoidCatchingGenericException::1 catching another type, ok 0.002
AvoidCatchingGenericException::2 throwing it, ok 0.002
AvoidCatchingNPE::0 failure case 0.001
AvoidCatchingNPE::1 catching another type, ok 0.002
AvoidCatchingNPE::2 throwing it, ok 0.002
AvoidCatchingThrowable::0 simple failure case 0.002
AvoidCatchingThrowable::1 ok 0.002
AvoidLosingExceptionInformation::0 basic failure case 0.002
AvoidLosingExceptionInformation::1 fetch the value returned by getMessage(), ok 0.002
AvoidLosingExceptionInformation::2 fetch the value returned by getCause(), ok 0.002
AvoidLosingExceptionInformation::3 a mix of guilty calls to getMessage(), getLocalizedMessage(), getCause() or getStackTrace(), failure 0.007
AvoidLosingExceptionInformation::4 a larger mix of guilty calls to getMessage(), getLocalizedMessage(), getCause(), getStackTrace() or toString(), failure 0
AvoidRethrowingException::0 failure case 0.001
AvoidRethrowingException::1 doing something else before throwing it, ok 0.004
AvoidRethrowingException::2 throwing the return value of a method call on the exception, ok 0.001
AvoidRethrowingException::3 throwing a different exception, ok 0.002
AvoidThrowingNewInstanceOfSameException::0 basic failure case 0.003
AvoidThrowingNewInstanceOfSameException::1 do something else before throwing a new instance of the same exception, ok 0.002
AvoidThrowingNewInstanceOfSameException::2 repackage cause as an instance of the same exception, failure 0.002
AvoidThrowingNewInstanceOfSameException::3 throw new instance of the same exception with a different message, ok 0.002
AvoidThrowingNewInstanceOfSameException::4 throw new instance of the same exception with the same message, failure 0.002
AvoidThrowingNewInstanceOfSameException::5 throws a new instance of the same exception without any arguments, ok 0.002
AvoidThrowingNewInstanceOfSameException::6 throws a new instance of the same exception from a nested try/catch block, ok 0.002
AvoidThrowingNewInstanceOfSameException::7 wraps the exception in a new instance of the same exception from a nested try/catch block, ok 0.002
AvoidThrowingNullPointerException::0 throwing various types 0.002
AvoidThrowingRawExceptionTypes::0 throwing various types 0.002
AvoidThrowingRawExceptionTypes::1 Bug 1796928 : The code uses a classe that use the same names that the one this rule is looking for... 0.002
DoNotExtendJavaLangError::0 Extends with fully qualified name 0.001
DoNotExtendJavaLangError::1 Extends with implicit import 0.001
DoNotExtendJavaLangError::2 Extends something else 0.001
DoNotThrowExceptionInFinally::0 classic failure case 0.002
ExceptionAsFlowControl::0 failure case 0.002
ExceptionAsFlowControl::1 normal throw catch 0.001
ExceptionAsFlowControl::2 BUG 996007 0.001
ExceptionAsFlowControl::3 NPE 0.001
SignatureDeclareThrowsException::0 method throws Exception 0.002
SignatureDeclareThrowsException::1 ok 0.001
SignatureDeclareThrowsException::2 constructor throws Exception 0.001
SignatureDeclareThrowsException::3 skip junit setUp method 0.001
SignatureDeclareThrowsException::4 skip junit tearDown method 0.002
SignatureDeclareThrowsException::5 Generics 0.001
SignatureDeclareThrowsException::6 skip any method starting with 'test' 0.001
SignatureDeclareThrowsException::7 #913 SignatureDeclareThrowsException is raised twice 0.002

ASTTryStatementTest

testMultipleCatchAndFinallyBlock 0
testFinallyBlockOnly 0
testCatchAndFinallyBlock 0
testCatchBlockOnly 0

DocumentNavigatorTest

testPrecedingSiblingAxisIterator2 0
testFollowingSiblingAxisIterator2 0
testXPath 0
testDescendantAxisIterator2 0.004
testFollowingSiblingAxisIterator 0.013
testPrecedingSiblingAxisIterator 0
testParentAxisIterator2 0
testParentAxisIterator 0
testXPath2 0
testDescendantAxisIterator 0
testChildAxisIterator 0

MigratingRulesTest

AvoidAssertAsIdentifier::0 assert as identifier 0.001
AvoidEnumAsIdentifier::0 variable and param named enum 0.001
ByteInstantiation::0 new Byte(), bad 0.002
ByteInstantiation::1 Byte.valueOf(), ok 0.001
IntegerInstantiation::0 new Integer(), bad 0.002
IntegerInstantiation::1 Integer.valueOf(), ok 0.001
JUnit4SuitesShouldUseSuiteAnnotation::0 Contains suite 0.002
JUnit4SuitesShouldUseSuiteAnnotation::1 Contains JUnit4TestAdapter suite 0.001
JUnit4SuitesShouldUseSuiteAnnotation::2 Uses propper suite 0.001
JUnit4TestShouldUseAfterAnnotation::0 Contains tearDown 0.002
JUnit4TestShouldUseAfterAnnotation::1 Contains @tearDown 0.001
JUnit4TestShouldUseAfterAnnotation::2 Renamed tearDown 0.001
JUnit4TestShouldUseBeforeAnnotation::0 Contains setUp 0.001
JUnit4TestShouldUseBeforeAnnotation::1 Contains @setUp 0.001
JUnit4TestShouldUseBeforeAnnotation::2 Renamed setup 0.001
JUnit4TestShouldUseTestAnnotation::0 Contains test, no @Test 0.002
JUnit4TestShouldUseTestAnnotation::1 OK 0.001
JUnit4TestShouldUseTestAnnotation::2 OK, renamed test 0.001
JUnit4TestShouldUseTestAnnotation::3 One test propper, the other incorrect 0.002
JUnit4TestShouldUseTestAnnotation::4 Two tests 0.001
JUnitUseExpected::0 JUnit 4 - Contains assert 0.002
JUnitUseExpected::1 Junit 3 format 0.002
JUnitUseExpected::2 Junit 3 format 0.001
JUnitUseExpected::3 Throws 0.002
JUnitUseExpected::4 This method can be broken into two, each checking 0.002
JUnitUseExpected::5 Not a JUnit class - Contains assert 0.001
LongInstantiation::0 new Long(), bad 0.001
LongInstantiation::1 Long.valueOf(), ok 0.002
ReplaceEnumerationWithIterator::0 bad, implementing Enumeration 0.001
ReplaceHashtableWithMap::0 bad, local variable of type Hashtable 0.001
ReplaceHashtableWithMap::1 bad, param of type Hashtable 0.001
ReplaceVectorWithList::0 bad, local variable of type Vector 0.001
ReplaceVectorWithList::1 bad, param of type Vector 0.001
ShortInstantiation::0 new Short(), bad 0.002
ShortInstantiation::1 Short.valueOf(), ok 0.001

XMLRendererTest

testRendererEncodedPath 0.001
testRenderWithMultipleMatch 0.004
testWithNoDuplication 0.009
testWithOneDuplication 0

AnyTokenizerTest

testMultiLineMacros 0

SunSecureRulesTest

ArrayIsStoredDirectly::0 Clear violation 0
ArrayIsStoredDirectly::1 Clear violation with this. 0
ArrayIsStoredDirectly::2 assignment to an internal array 0.001
ArrayIsStoredDirectly::3 assignment of param to local 0.001
ArrayIsStoredDirectly::4 skip interfaces 0.001
ArrayIsStoredDirectly::5 skip abstract, native 0.001
ArrayIsStoredDirectly::6 equality expression, not assignment 0.001
ArrayIsStoredDirectly::7 assignment of array element 0.001
ArrayIsStoredDirectly::8 Constructor clear violation 0
ArrayIsStoredDirectly::9 Constructor no violation 0.001
ArrayIsStoredDirectly::10 No reassignment 0.001
ArrayIsStoredDirectly::11 #1063 False+: ArrayIsStoredDirectly 0.009
MethodReturnsInternalArray::0 Clear violation 0
MethodReturnsInternalArray::1 Clear violation with this. 0
MethodReturnsInternalArray::2 ok 0
MethodReturnsInternalArray::3 tricky field hiding 0
MethodReturnsInternalArray::4 really sick code 0
MethodReturnsInternalArray::5 returning a local array is ok 0
MethodReturnsInternalArray::6 returning a local array is ok part deux 0
MethodReturnsInternalArray::7 returning a cloned field 0.001
MethodReturnsInternalArray::8 returning a new array 0.001
MethodReturnsInternalArray::9 Doesn't return array 0.002
MethodReturnsInternalArray::10 Interface with array declaration 0.001
MethodReturnsInternalArray::11 #962 MethodReturnsInternalArray: False positive using a ternary operator 0.001

SimpleNodeTest

testLineNumbersAreSetOnAllSiblings 0.004
testHasExplicitExtends 0.001
testFindDescendantsOfType 0
testLineNumbersForNameSplitOverTwoLines 0
testColumnsOnQualifiedName 0.003
testXPathNodeSelect 0
testGetFirstChildNestedDeeper 0
testParentMethods 0
testContainsChildOfType 0
testFindDescendantsOfTypeRecurse 0
testUserData 0
testNoExplicitExtends 0.001
testContainsNoInnerWithAnonInner 0
testGetFirstChildNested 0
testMethodSameLine 0
testMethodDiffLines 0.001
testGetFirstChild 0
testHasExplicitImplements 0
testNoLookahead 0.001
testFindDescendantsOfTypeMultiple 0
testNoExplicitImplements 0.001

AttributeAxisIteratorTest

testAttributeAxisIterator 0

ASTFunctionNodeTest

testGetBodyFunctionClosureExpression 0.001
testGetBody 0.001

AbstractRuleTest

testEquals1 0.008
testEquals2 0
testEquals3 0
testEquals4 0.001
testEquals5 0.001
testEquals6 0.002
testEquals7 0
testEquals8 0
testEquals9 0
testCreateRV 0.005
testRuleWithVariableInMessage 0.003
testRuleSuppress 0.001
testCreateRV2 0.001
testEquals10 0

FloatPropertyTest

testType 0
testConstructors 0
testValueFrom 0.001
testAsDelimitedString 0
testErrorForBad 0
testErrorFor 0

CsTokenizerTest

testSimpleClass 0.001
testCommentsIgnored1 0
testCommentsIgnored2 0.001
testCommentsIgnored3 0
testMoreTokens 0.001
testOpenString 0
testSimpleClassDuplicatedTokens 0.001
testSimpleClassMethodMultipleLines 0
testStrings 0

LoggingJavaRulesTest

AvoidPrintStackTrace::0 simple failure 0.001
AvoidPrintStackTrace::1 ok 0.001
GuardLogStatementJavaUtil::0 Guarded call - OK 0.002
GuardLogStatementJavaUtil::1 Unguarded call - KO 0.003
GuardLogStatementJavaUtil::2 #1203 GuardLogStatementJavaUtil issues warning for severe level not being specified as property 0.003
GuardLogStatementJavaUtil::3 #1227 GuardLogStatementJavaUtil doesn't catch log(Level.FINE, "msg" + " msg") calls 0.003
LoggerIsNotStaticFinal::0 ok 0.002
LoggerIsNotStaticFinal::1 two bad loggers 0.001
LoggerIsNotStaticFinal::2 ok with internal class 0.001
LoggerIsNotStaticFinal::3 ok with local var 0.001
MoreThanOneLogger::0 ok 0.001
MoreThanOneLogger::1 two loggers 0.001
MoreThanOneLogger::2 different logger for inner class 0.001
MoreThanOneLogger::3 ok, fixing NPE bug 0.001
MoreThanOneLogger::4 https://github.com/pmd/pmd/pull/42: Add SLF4j Logger type 0.001
MoreThanOneLogger::5 https://github.com/pmd/pmd/pull/42: Add SLF4j Logger type: Two Loggers 0.001
SystemPrintln::0 one 0.001
SystemPrintln::1 many 0.001
SystemPrintln::2 none 0.001
SystemPrintln::3 #1217 SystemPrintln always says "System.out.print is used" 0.001

RuleSetTest

testGetRuleByName2 0
testIncludeExcludeMultipleRuleSetWithRuleChainApplies 0.022
testAddExcludePatterns 0
testEquals1 0
testEquals2 0
testEquals3 0
testEquals4 0
testEquals5 0.001
testEquals6 0
testAddRuleSet 0
testAccessors 0
testAddIncludePattern 0
testNoDFA 0
testSetExcludePatterns 0
testIncludeExcludeApplies 0
testAddRuleSetByReferenceBad 0.001
testAddRuleSetByReferenceAllRule 0
testGetRuleByName 0
testAddIncludePatterns 0.001
testAddRuleSetByReferenceSingleRule 0
testApply0Rules 0.001
testIncludesRuleWithDFA 0
testRuleList 0
testSetIncludePatterns 0
testAddExcludePattern 0
testLanguageApplies 0

CommentRulesTest

CommentContent::0 Includes bad words 0.001
CommentRequired::0 Missing comments - all required (default). 0.002
CommentRequired::1 All elements have javadoc comments. 0.001
CommentRequired::2 Missing comments - only class level required. 0.001
CommentRequired::3 Too many comments - all comments are unwanted. 0.001
CommentRequired::4 #1115 commentRequiredRule in pmd 5.1 is not working properly 0.001
CommentRequired::5 #1115 commentRequiredRule in pmd 5.1 is not working properly - without new lines 0.001
CommentSize::0 Too many lines 0.001

LooseCouplingTest

LooseCoupling::0 returning a HashSet, bad 0.001
LooseCoupling::1 returning a Map, OK 0.001
LooseCoupling::2 no problemo 0.001
LooseCoupling::3 returning a set 0.001
LooseCoupling::4 field declared of type HashSet 0.001
LooseCoupling::5 field, return type both HashSet 0.003
LooseCoupling::6 two fields 0.002
LooseCoupling::7 method param is HashMap 0.003
LooseCoupling::8 Vector could be List 0.001
LooseCoupling::9 ArrayList could be List 0.001
LooseCoupling::10 java.util.HashMap should be Map 0.002
LooseCoupling::11 #938 False positive on LooseCoupling for overriding methods 0.001

JavaTokensTokenizerTest

testDiscardImports 0
testCommentsIgnored 0
testDiscardSimpleOneLineAnnotation 0
test1 0.001
test2 0
testDiscardPkgStmts 0
testIgnoreComments 0.001
testIgnoreBetweenSpecialAnnotation 0
testIgnoreBetweenSpecialAnnotationAndIgnoreAnnotations 0.001
testDiscardSemicolons 0
testDiscardOneLineAnnotationWithParams 0

NameOccurrencesTest

testQualifiedOccurrence 0
testSuper 0
testThis 0
testSimpleVariableOccurrence 0
testNameLinkage 0
testIsSelfAssignment 0
testEnumStaticUsage 0

MethodPropertyTest

testAsMethodOn 0.001
testAsStringOn 0
testType 0
testConstructors 0
testValueFrom 0
testAsDelimitedString 0
testErrorForBad 0
testErrorFor 0

RubyTokenizerTest

tokenizeTest 0

UnusedCodeRulesTest

UnusedFormalParameter::0 failure case 0.001
UnusedFormalParameter::1 method called on param 0.001
UnusedFormalParameter::2 assignment to param 0.001
UnusedFormalParameter::3 interface 0.001
UnusedFormalParameter::4 don't flag public methods by default 0.001
UnusedFormalParameter::5 flag public methods if checkall property is set 0.001
UnusedFormalParameter::6 skip native/abstract methods 0.002
UnusedFormalParameter::7 anonymous inner class npe 0.001
UnusedFormalParameter::8 unused constructor param 0.001
UnusedFormalParameter::9 assigned but not used 0.001
UnusedFormalParameter::10 array element is set 0.001
UnusedFormalParameter::11 unused array in constructor 0.001
UnusedFormalParameter::12 unused array in method 0.001
UnusedFormalParameter::13 False - ! if "checkAll" property is not set 0.001
UnusedFormalParameter::14 violation suppression regex works 0.001
UnusedFormalParameter::15 violation suppression xpath works, by name 0.001
UnusedFormalParameter::16 violation suppression xpath works, by type 0.004
UnusedFormalParameter::17 #878 don't flag abstract methods even if checkall property is set when checking an abstract class 0
UnusedFormalParameter::18 #1159 false positive UnusedFormalParameter readObject(ObjectInputStream) if not used 0.002
UnusedFormalParameter::19 #1159 correct UnusedFormalParameter for readObject(foo) if not used 0.001
UnusedLocalVariable::0 unused local with assignment 0.001
UnusedLocalVariable::1 unused local w/o assignment 0.001
UnusedLocalVariable::2 unused local in constructor 0.001
UnusedLocalVariable::3 local used on rhs 0.002
UnusedLocalVariable::4 unused local in static initializer 0.001
UnusedLocalVariable::5 unused field 0
UnusedLocalVariable::6 loop indexes are not unused locals 0.001
UnusedLocalVariable::7 local used in anonymous inner class 0.001
UnusedLocalVariable::8 two unused locals of same name, one in nested class 0
UnusedLocalVariable::9 two locals declared on same line 0
UnusedLocalVariable::10 an assignment does not a usage make 0.001
UnusedLocalVariable::11 a compound assignment operator doth a usage make 0.002
UnusedLocalVariable::12 assignment to a member field means used 0.002
UnusedLocalVariable::13 make sure scopes are working 0.002
UnusedLocalVariable::14 another scope test 0.002
UnusedLocalVariable::15 assignment to an array member will be treated as a usage 0.001
UnusedLocalVariable::16 local variable used in postfix expression as child of StatementExpression 0.001
UnusedLocalVariable::17 local variable used in postfix expression on right hand side 0.001
UnusedLocalVariable::18 local variable, object ref, public field of which is incremented via in postfix expression 0.001
UnusedLocalVariable::19 local used in right shift 0.001
UnusedLocalVariable::20 unused local with assignment - Suppressed 0.001
UnusedLocalVariable::21 Reproducing bug #1955852: false positives for UnusedPrivateMethod & UnusedLocalField 0.001
UnusedLocalVariable::22 #1247 Not able to recognize JDK 8 Static Method References 0.002
UnusedModifier::0 Unneeded 'public' in interface method 0.001
UnusedModifier::1 class, no problem 0.001
UnusedModifier::2 Unneeded 'abstract' in interface method 0.001
UnusedModifier::3 all is well in interface method 0
UnusedModifier::4 Unneeded 'public' in interface field 0.001
UnusedModifier::5 Unneeded 'static' in interface field 0.001
UnusedModifier::6 Unneeded 'final' in interface field 0.001
UnusedModifier::7 Unneeded 'public static final' in interface field 0.001
UnusedModifier::8 OK in interface field 0.001
UnusedModifier::9 Unneeded 'public' in class nested in interface 0.001
UnusedModifier::10 Unneeded 'static' in class nested in interface 0.001
UnusedModifier::11 OK in class nested in interface 0
UnusedModifier::12 Unneeded 'public' in interface nested in interface 0.001
UnusedModifier::13 Unneeded 'static' in interface nested in interface 0.001
UnusedModifier::14 OK in interface nested in interface 0.001
UnusedModifier::15 Unneeded 'static' in interface nested in class 0.001
UnusedModifier::16 OK in interface nested in class 0
UnusedModifier::17 Unneeded 'public static final' in interface field inside another interface 0.001
UnusedModifier::18 OK in interface field inside another interface 0.001
UnusedModifier::19 Don't check methods in nested classes 0.001
UnusedModifier::20 Don't check fields in nested classes 0.001
UnusedModifier::21 Don't check fields that are anonymous inner classes 0.001
UnusedModifier::22 False negative: #1185 UnusedModifier throws NPE when parsing enum with a nested static interface 0.001
UnusedModifier::23 False negative: static class nested in enum 0.001
UnusedPrivateField::0 simple unused private field 0
UnusedPrivateField::1 private field referenced in another field's initializer 0.001
UnusedPrivateField::2 private field with field of same name in anonymous inner class 0.001
UnusedPrivateField::3 field is used semantically before it's declared syntactically 0.001
UnusedPrivateField::4 private field referenced via 'this' modifier 0.001
UnusedPrivateField::5 private referenced by anonymous inner class 0.001
UnusedPrivateField::6 interface sanity test 0.001
UnusedPrivateField::7 unused private field in static inner class 0.001
UnusedPrivateField::8 private field referenced in nonstatic inner class 0.001
UnusedPrivateField::9 unused private static field 0.001
UnusedPrivateField::10 private static final referenced with qualifier 0.001
UnusedPrivateField::11 unused private field after class decl 0.007
UnusedPrivateField::12 two unused private fields in separate inner classes 0.001
UnusedPrivateField::13 method param shadows unused private field 0.001
UnusedPrivateField::14 private field referenced via 'this' not shadowed by param of same name 0.001
UnusedPrivateField::15 don't catch public fields 0.001
UnusedPrivateField::16 instantiate self and reference private field on other object 0.001
UnusedPrivateField::17 don't count Serialization fields as being unused 0.001
UnusedPrivateField::18 an assignment does not a usage make 0.001
UnusedPrivateField::19 assignment to field member is a usage 0.001
UnusedPrivateField::20 assignment to field member using this modifier is a usage 0.001
UnusedPrivateField::21 this.foo++ shouldn't throw an NPE, but isn't a usage 0.001
UnusedPrivateField::22 super.foo++ shouldn't throw an NPE 0.001
UnusedPrivateField::23 SuppressWarnings("unused") unused private field 0.001
UnusedPrivateField::24 631681, private field is accessed by outer class 0.001
UnusedPrivateField::25 631681, private field in singleton is accessed by outer class 0.002
UnusedPrivateField::26 #1188 False positive in UnusedPrivateField 0.001
UnusedPrivateMethod::0 private method called by public method 0.001
UnusedPrivateMethod::1 simple unused private method 0.001
UnusedPrivateMethod::2 anonymous inner class calls private method 0.001
UnusedPrivateMethod::3 two private methods with same name but different parameters 0.001
UnusedPrivateMethod::4 calling private method after instantiating new copy of myself 0.001
UnusedPrivateMethod::5 calling private method using 'this' modifier 0.001
UnusedPrivateMethod::6 simple unused private static method 0.001
UnusedPrivateMethod::7 readResolve/writeReplace/etc are OK 0.001
UnusedPrivateMethod::8 Private methods called only by themselves, BUG 1038229 0.001
UnusedPrivateMethod::9 private with same name as public, different method signature 0
UnusedPrivateMethod::10 False +, BUG 1114754 0.001
UnusedPrivateMethod::11 called from constructor 0.001
UnusedPrivateMethod::12 private method with same name but diff arg count than public method 0.001
UnusedPrivateMethod::13 static private called from initializer 0.001
UnusedPrivateMethod::14 static private invoked in static context - i.e., Foo.hi() 0.001
UnusedPrivateMethod::15 private method with same name as param 0.001
UnusedPrivateMethod::16 two methods, one private, one public, same name, same arg count, diff types 0.001
UnusedPrivateMethod::17 two private methods, both used, same name, same arg count, diff types 0.001
UnusedPrivateMethod::18 private method same name as local 0.001
UnusedPrivateMethod::19 SuppressWarnings("unused") - simple unused private method 0.001
UnusedPrivateMethod::20 Calling method on instance of self 0.001
UnusedPrivateMethod::21 #46 False +: Unused private field: call to instance of self, received from another class 0
skipped
UnusedPrivateMethod::21 #46 False +: Unused private field: call to instance of self, received from another class 0
UnusedPrivateMethod::22 Calling one arg varargs method 0.001
UnusedPrivateMethod::23 Calling two arg varargs method 0.001
UnusedPrivateMethod::24 Reproducing bug #1955852: false positives for UnusedPrivateMethod & UnusedLocalField 0.002
UnusedPrivateMethod::25 verify #1156 False failure with "Avoid unused private methods" 0.003
UnusedPrivateMethod::26 #1223 UnusedPrivateMethod: Java 8 method reference causing false positives 0.001
UnusedPrivateMethod::27 #1226 False Positive: UnusedPrivateMethod overloading with varargs 0.002
UnusedPrivateMethod::28 #1228 UnusedPrivateMethod returns false positives (1) 0.003
UnusedPrivateMethod::29 #1228 UnusedPrivateMethod returns false positives (2) 0.003
UnusedPrivateMethod::30 #1228 UnusedPrivateMethod returns false positives (3) 0.003
UnusedPrivateMethod::31 #1228 UnusedPrivateMethod returns false positives (4) 0.006
UnusedPrivateMethod::32 #1228 UnusedPrivateMethod returns false positives (5a) 0.002
UnusedPrivateMethod::33 #1228 UnusedPrivateMethod returns false positives (5b) 0.004
UnusedPrivateMethod::34 #1233 UnusedPrivateMethod: False positive : method called on returned object. 0.001
UnusedPrivateMethod::35 #1228 UnusedPrivateMethod returns false positives (6) 0.025
UnusedPrivateMethod::36 #1228 UnusedPrivateMethod returns false positives (7) 0.024
UnusedPrivateMethod::37 #1234 Unused private methods still giving false positives in 5.1.3 snapshot 0.003
UnusedPrivateMethod::38 #1156 False failure with "Avoid unused private methods" (part 2) 0.002
UnusedPrivateMethod::39 #1251 UnusedPrivateMethod false positives for boxing & unboxing arguments 0.003
UnusedPrivateMethod::40 #1249 Regression: UnusedPrivateMethod from 5.0.5 to 5.1.2 0.008

JspPageStyleTest

testJsfValueBinding 0
testExpressionInAttribute 0
testDirective 0.007
testComment 0
testElExpression 0
testScriptlet 0
testElExpressionInAttribute 0.001
testDeclaration 0
testExpression 0

MatchTest

testCompareTo 0
testSimple 0

RuleReferenceTest

testRuleSetReference 0.002
testNotOverride 0
testOverride 0.001

OpenTagRegisterTest

unopenedTags 0
interleavedTags 0
testSimpleNesting 0
openedIsolatedTag 0
doubleNesting 0

MatchAlgorithmTest

testIgnore 0
testSimple 0

EnumeratedPropertyTest

testType 0
testConstructors 0
testValueFrom 0
testAsDelimitedString 0.001
testErrorForBad 0
testErrorFor 0

ImportsRulesTest

DontImportJavaLang::0 import java.lang.String 0
DontImportJavaLang::1 import java.lang.* 0.003
DontImportJavaLang::2 import java.lang.ref/reflect/annotation/instrument/management 0.008
DontImportJavaLang::3 Static Java imports are OK 0.002
DontImportJavaLang::4 Importing java.lang.Thread.UncaughtExceptionHandler 0.001
DontImportJavaLang::5 import java.lang.ProcessBuilder.Redirect: #1031 false DontImportJavaLang 0.002
DuplicateImports::0 duplicate single type imports 0.001
DuplicateImports::1 duplicate wildcard imports 0.001
DuplicateImports::2 single type import after wildcard import 0.003
DuplicateImports::3 subpackage import, ok 0.002
DuplicateImports::4 674394, disambiguation import should be allowed 0.003
DuplicateImports::5 674394, disambiguation import because of conflict with java.lang 0.002
ImportFromSamePackage::0 simple failure 0.002
ImportFromSamePackage::1 class in default package importing from sub package 0.002
ImportFromSamePackage::2 class in default package importing from other package 0.002
ImportFromSamePackage::3 class not in default package importing from default package 0.002
ImportFromSamePackage::4 class in default package importing from default package 0.001
ImportFromSamePackage::5 importing from subpackage 0.002
ImportFromSamePackage::6 importing all from same package 0.002
TooManyStaticImports::0 simple violation 0.001
TooManyStaticImports::1 ok 0.001
TooManyStaticImports::2 ok, we allow five now 0.001
UnnecessaryFullyQualifiedName::0 1, nothing wrong 0.001
UnnecessaryFullyQualifiedName::1 2, valid implements 0.002
UnnecessaryFullyQualifiedName::2 3, invalid implements 0.001
UnnecessaryFullyQualifiedName::3 4, valid extends 0.002
UnnecessaryFullyQualifiedName::4 5, invalid extends 0.001
UnnecessaryFullyQualifiedName::5 6, valid field 0.001
UnnecessaryFullyQualifiedName::6 7, invalid field 0.002
UnnecessaryFullyQualifiedName::7 8, valid return type 0.001
UnnecessaryFullyQualifiedName::8 9, invalid return type 0.001
UnnecessaryFullyQualifiedName::9 10, valid formal parameter 0.002
UnnecessaryFullyQualifiedName::10 11, invalid formal parameter 0.002
UnnecessaryFullyQualifiedName::11 12, valid static method call 0.001
UnnecessaryFullyQualifiedName::12 13, invalid static method call 0.002
UnnecessaryFullyQualifiedName::13 14, valid static import method call 0.002
UnnecessaryFullyQualifiedName::14 15, invalid static import method call 0.001
UnnecessaryFullyQualifiedName::15 16, valid static import method call with class import 0.002
UnnecessaryFullyQualifiedName::16 17, invalid static import method call with class import 0.001
UnnecessaryFullyQualifiedName::17 18, on-demand, valid field 0.001
UnnecessaryFullyQualifiedName::18 19, on-demand, invalid field 0.001
UnnecessaryFullyQualifiedName::19 20, on-demand, valid static import method call 0.001
UnnecessaryFullyQualifiedName::20 21, on-demand, invalid static import method call 0.002
UnnecessaryFullyQualifiedName::21 22, valid on-demand static import method call with class import 0.003
UnnecessaryFullyQualifiedName::22 23, invalid on-demand static import method call with class import 0.002
UnnecessaryFullyQualifiedName::23 #1078 Package statement introduces false positive UnnecessaryFullyQualifiedName violation 0.002
UnusedImports::0 simple unused single type import 0.001
UnusedImports::1 one used single type import 0.002
UnusedImports::2 2 unused single-type imports 0.001
UnusedImports::3 1 used single type import 0.002
UnusedImports::4 1 import stmt, used only in throws clause 0.001
UnusedImports::5 for loop 0.002
UnusedImports::6 Generics 0.001
UnusedImports::7 Annotations 0.002
UnusedImports::8 Annotations 2 0.002
UnusedImports::9 import from default package 0.002
UnusedImports::10 import from default package 0.001
UnusedImports::11 Used static import 0.002
UnusedImports::12 Unused static import 0.001
UnusedImports::13 On demand import 0.002
UnusedImports::14 imports used in javadoc comment 0.001
UnusedImports::15 Bug 2606609 : False "UnusedImports" positive in package-info.java 0.002
UnusedImports::16 bug #254 False+ : UnusedImport with Javadoc @link 0.001
UnusedImports::17 #1181 unused import false positive if used as parameter in javadoc only. 0.002

XmlParserOptionsTest

testEqualsHashcode 0
testDefaults 0
testSetters 0
testConstructor 0

ReadableDurationTest

test[0] 0
test[1] 0
test[2] 0
test[3] 0

HTMLRendererTest

testNullPassedIn 0
testError 0
testRendererMultiple 0.001
testRenderer 0
testRendererEmpty 0

BasicRulesTest

MistypedCDATASection::0 No CDATASection 0.002
MistypedCDATASection::1 Valid CDATASection 0.002
MistypedCDATASection::2 CDATASection with [ and ] in it, but not at the ends 0.002
MistypedCDATASection::3 CDATASection with [ at the beginning 0.002
MistypedCDATASection::4 CDATASection with ] at the end 0.004

ASTBlockStatementTest

testIsAllocation 0
testIsAllocation2 0

NamingRulesTest

AbstractNaming::0 ok, abstract class AbstractFoo 0.003
AbstractNaming::1 bad, abstract class named Foo 0.001
AbstractNaming::2 ok, concrete class named AbstractFoo 0.002
AbstractNaming::3 ok, concrete class named Foo 0.002
AvoidDollarSigns::0 class Fo$o 0.002
AvoidDollarSigns::1 variable fo$oo 0.001
AvoidDollarSigns::2 method foo$oo 0.002
AvoidDollarSigns::3 interface fo$oo 0.001
AvoidDollarSigns::4 ok 0.002
AvoidFieldNameMatchingMethodName::0 TEST1 0.002
AvoidFieldNameMatchingMethodName::1 TEST2 0.002
AvoidFieldNameMatchingMethodName::2 TEST3 0.001
AvoidFieldNameMatchingMethodName::3 TEST4 0.002
AvoidFieldNameMatchingMethodName::4 Just skip interfaces 0.001
AvoidFieldNameMatchingTypeName::0 TEST1 0.002
AvoidFieldNameMatchingTypeName::1 TEST2 0.001
AvoidFieldNameMatchingTypeName::2 TEST3 0.002
AvoidFieldNameMatchingTypeName::3 TEST4 0.001
AvoidFieldNameMatchingTypeName::4 interface 0.001
BooleanGetMethodName::0 Bad name 0.002
BooleanGetMethodName::1 Good name 0.001
BooleanGetMethodName::2 Should not match on multiple parameters by default 0.002
BooleanGetMethodName::3 Should match on multiple parameters when checkParameterizedMethods = true 0.002
ClassNamingConventions::0 class names should not start with lowercase character 0.001
ClassNamingConventions::1 all is well 0.002
GenericsNaming::0 1 upper case/single letter 0.002
GenericsNaming::1 2 upper case/single letter 0.002
GenericsNaming::2 1 lower Case/single letter 0.002
GenericsNaming::3 1 lower case/multiple letter 0.001
LongVariable::0 param 0.002
LongVariable::1 ok 0.002
LongVariable::2 local 0.001
LongVariable::3 for 0.002
LongVariable::4 17 character max 0.002
LongVariable::5 threshold test 0.001
MethodNamingConventions::0 method names should start with lowercase character 0.002
MethodNamingConventions::1 method names should not contain underscores 0.002
MethodNamingConventions::2 all is well 0.001
MethodWithSameNameAsEnclosingClass::0 bad 0.002
MethodWithSameNameAsEnclosingClass::1 ok 0.001
MethodWithSameNameAsEnclosingClass::2 doesn't crash on interfaces 0.002
MisleadingVariableName::0 misnamed param 0.001
MisleadingVariableName::1 misnamed local 0.002
MisleadingVariableName::2 all's well 0.002
NoPackage::0 bad 0.001
NoPackage::1 good 0.002
NoPackage::2 nested package 0.001
PackageCase::0 bad 0.001
PackageCase::1 good 0.002
ShortClassName::0 ShortClassName basic test case 0.001
ShortClassName::1 ShortClassName basic test case 2 : More code and other declarations 0.002
ShortClassName::2 ShortClassName works with private classes. 0.002
ShortClassName::3 #1143 ShortClassName fires with a 5-letter class name 0.001
ShortClassName::4 #1232 Make ShortClassName configurable (default = 5) 0.002
ShortClassName::5 #1232 Make ShortClassName configurable (minimum length = 2) 0.001
ShortClassName::6 #1232 Make ShortClassName configurable (minimum length = 4) 0.002
ShortMethodName::0 ok 0.002
ShortMethodName::1 bad 0.001
ShortMethodName::2 2 violations 0.002
ShortMethodName::3 2 methods, 1 violation 0.002
ShortVariable::0 param 0.001
ShortVariable::1 none 0.002
ShortVariable::2 local 0.002
ShortVariable::3 for 0.002
ShortVariable::4 field 0.001
ShortVariable::5 catch(Exception e) is OK 0.001
ShortVariable::6 ShortVariable false positive with for-each loops 0.002
ShortVariable::7 ShortVariable within for-each loops 0.002
SuspiciousConstantFieldName::0 ok 0.002
SuspiciousConstantFieldName::1 PI not final 0.001
SuspiciousConstantFieldName::2 PI and E not final 0.002
SuspiciousConstantFieldName::3 ok 0.002
SuspiciousConstantFieldName::4 ignore interfaces 0.001
SuspiciousEqualsMethodName::0 bad, equals(Foo foo) 0.002
SuspiciousEqualsMethodName::1 ok, equals(Object foo) 0.002
SuspiciousEqualsMethodName::2 bad, equal(Object foo) 0.002
SuspiciousHashcodeMethodName::0 ok 0.002
SuspiciousHashcodeMethodName::1 hashcode 0.002
SuspiciousHashcodeMethodName::2 HashCode 0.001
SuspiciousHashcodeMethodName::3 Hashcode 0.002
VariableNamingConventions::0 member level, final statics should be all caps 0.002
VariableNamingConventions::1 member level, non-finals shouldn't have underscores 0.002
VariableNamingConventions::2 local level, non-finals shouldn't have underscores 0.002
VariableNamingConventions::3 method level, non-finals shouldn't have underscores 0.002
VariableNamingConventions::4 constructor level, non-finals shouldn't have underscores 0.002
VariableNamingConventions::5 member level, variables names should start with lowercase character 0.002
VariableNamingConventions::6 local level, variables names should start with lowercase character 0.002
VariableNamingConventions::7 method level, variables names should start with lowercase character 0.001
VariableNamingConventions::8 constructor level, variables names should start with lowercase character 0.002
VariableNamingConventions::9 all is well 0.002
VariableNamingConventions::10 local finals are ok 0.001
VariableNamingConventions::11 serialVersionUID is OK 0.002
VariableNamingConventions::12 interface fields are tested 0.001
VariableNamingConventions::13 final non-statics need not be all caps 0.001
VariableNamingConventions::14 variables in inner classes should not trigger problems in parent declaration 0.002
VariableNamingConventions::15 Rule property control 0.002
VariableNamingConventions::16 Check prefixes 0.001
VariableNamingConventions::17 Check suffixes 0.002
VariableNamingConventions::18 Check members disabled 0.002
VariableNamingConventions::19 Check locals disabled 0.001
VariableNamingConventions::20 Check parameters disabled 0.002
VariableNamingConventions::21 False - with non primitive fields (Bug 2225474) 0.002
VariableNamingConventions::22 #1058 False positive for VariableNamingConventions 0.002

RegexStringFilterTest

testEndsWith 0.001
testFilterAbsoluteWithExtension 0
testFilterRelativeWithoutExtension 0
testFilterAbsoluteWithoutExtension 0
testFilterRelativeWithExtension 0.001

JspDocStyleTest

testSimplestJsp 0.001
quoteExpression 0.008
unclosedTagMultipleLevels 0
testInlineCss 0
nestedEmptyTags 0
testImportHtmlScript 0
nestedMultipleTags 0
testCData 0
unclosedStartTagWithUnmatchedCloseOfDifferentTag 0
unclosedTagAndNoQuotesForAttribute 0
unclosedTag 0
testTextInTag 0
noQuoteAttrWithMalformedJspExpression 0
noQuoteAttrEmpty 0
noQuoteAttrValue 0
testComplexHtmlScript 0.002
testAttributeValueContainingHash 0.001
unclosedTagsWithJspExpressionWithin 0
unmatchedTagDoesNotInfluenceStructure 0
testComment 0
unclosedTagsWithDollar 0
quoteEL 0
noQuoteAttrWithJspExpression 0
noSpacesBetweenTags 0.001
noQuoteAttrTab 0
unclosedTagsWithELWithin 0
testElementAttributeAndNamespace 0.006
mixedExpressions 0
testDoctype 0
testHtmlScriptWithAttribute 0
unclosedParentTagClosedBeforeChild 0
noQuoteAttrWithJspEL 0
testHtmlScript 0
noQuoteAttrCrLf 0
textAfterOpenAndClosedTag 0

PMDASMClassLoaderTest

testLoadClassWithImportOnDemand 0.004
testClassWithImportInnerOnDemand 0
testCachingOfNotFoundClasses 0

EcmascriptParserOptionsTest

testEqualsHashcode 0
testDefaults 0
testSetters 0
testConstructor 0

SignatureDeclareThrowsExceptionTest

SignatureDeclareThrowsException::0 method throws Exception 0.001
SignatureDeclareThrowsException::1 ok 0.001
SignatureDeclareThrowsException::2 constructor throws Exception 0.001
SignatureDeclareThrowsException::3 JUnit 4 testcase 0.002
SignatureDeclareThrowsException::4 skip method in class that extends TestCase 0.001
SignatureDeclareThrowsException::5 Don't skip other methods 0
SignatureDeclareThrowsException::6 Unless 0.001
SignatureDeclareThrowsException::7 skip junit setUp method where the superclass is TestCase 0.001
SignatureDeclareThrowsException::8 skip junit setUp method where the superclass is TestCase, imported explicitly 0.001
SignatureDeclareThrowsException::9 skip junit setUp method where the superclass is TestCase, but is imported implicitly 0.001
SignatureDeclareThrowsException::10 skip junit setUp method where the superclass is TestCase and is in the same package 0.001
SignatureDeclareThrowsException::11 Generics 0.001

PLSQLTokenizerTest

tokenizeTest 0.044

LocalScopeTest

testLocalVariableTypesAreRecorded 0
testQualifiedNameOccurrence 0
testMethodArgumentTypesAreRecorded 0
testNameWithThisOrSuperIsNotFlaggedAsUnused 0
testNameWithSuperIsNotFlaggedAsUnused 0
testPostfixUsageIsRecorded 0
testgetEnclosingMethodScope 0
testLocalVariableDeclarationFound 0

BasicRulesTest

AssignmentInOperand::0 Ok, all cases 0.004
AssignmentInOperand::1 Bad, assignment, all cases 0.005
AssignmentInOperand::2 Ok, allow assignment, if 0.004
AssignmentInOperand::3 Ok, allow assignment, while 0.002
AssignmentInOperand::4 Ok, allow assignment, do 0.003
AssignmentInOperand::5 Ok, allow assignment, for 0.002
AssignmentInOperand::6 Ok, allow assignment, ternary 0.003
AssignmentInOperand::7 Ok, allow assignment, ternary results 0.002
AssignmentInOperand::8 Bad, increment/decrement, all cases 0.005
AssignmentInOperand::9 Ok, allow increment/decrement, all cases 0.004
AvoidTrailingComma::0 Ok, object literals 0.003
AvoidTrailingComma::1 Bad, object literals 0.002
AvoidTrailingComma::2 Bad, object literals, multi-line nested 0.002
AvoidTrailingComma::3 Bad, object literals, compressed nested 0.002
AvoidTrailingComma::4 Ok, allow object literals 0.002
AvoidTrailingComma::5 Ok, array literals 0.003
AvoidTrailingComma::6 Bad, array literals 0.002
AvoidTrailingComma::7 Bad, array literals, multi-line nested 0.002
AvoidTrailingComma::8 Bad, array literals, compressed nested 0.001
AvoidTrailingComma::9 Ok, allow array literals 0.003
ConsistentReturn::0 Ok, no return 0.001
ConsistentReturn::1 Ok, 1 return w/ result 0.002
ConsistentReturn::2 Ok, 1 return w/o result 0.001
ConsistentReturn::3 Ok, nested function with different return result 0.001
ConsistentReturn::4 Bad, mixed result 0.001
ConsistentReturn::5 Bad, mixed result with nested function 0.002
EqualComparison::0 Ok, all cases 0.002
EqualComparison::1 Bad, all cases 0.001
GlobalVariable::0 Ok, all cases 0.002
GlobalVariable::1 Bad, all cases 0.003
InnaccurateNumericLiteral::0 Ok integer 0.002
InnaccurateNumericLiteral::1 Bad integer 0.002
InnaccurateNumericLiteral::2 Ok float 0.002
InnaccurateNumericLiteral::3 Bad float 0.001
InnaccurateNumericLiteral::4 Ok float w/ exponent 0.002
InnaccurateNumericLiteral::5 Bad float w/ exponent 0.002
ScopeForInVariable::0 Ok, global scope 0.002
ScopeForInVariable::1 Ok, function scope 0.002
ScopeForInVariable::2 Ok, nested function 0.002
ScopeForInVariable::3 Bad, global scope 0.002
ScopeForInVariable::4 Bad, function scope 0.002
ScopeForInVariable::5 Bad, nested function 0.002
UnreachableCode::0 Ok, return 0.002
UnreachableCode::1 Ok, loop continue 0.002
UnreachableCode::2 Ok, loop break; 0.001
UnreachableCode::3 Ok, switch break 0.002
UnreachableCode::4 Ok, throw 0.002
UnreachableCode::5 Bad, return 0.002
UnreachableCode::6 Bad, loop continue 0.001
UnreachableCode::7 Bad, loop break; 0.002
UnreachableCode::8 Bad, switch break 0.002
UnreachableCode::9 Bad, throw 0.002
UseBaseWithParseInt::0 KO, missing the base argument 0.001
UseBaseWithParseInt::1 OK, have the appropriate 'base' parameter 0.002

VariableUsageFinderFunctionTest

testLookingForUsed 0

ConfigurationTest

testThreads 0
testReportShortNames 0
testClassLoader 0
testStressTest 0
testDebug 0
testSourceEncoding 0
testCreateRenderer 0.013
testSuppressMarker 0.001
testReportProperties 0
testInputPaths 0
testLanguageVersionDiscoverer 0
testReportFile 0
testReportFormat 0.001
testBenchmark 0.001
testRuleSets 0
testMinimumPriority 0
testShowSuppressedViolations 0

DocumentNavigatorTest

getDocumentNode 0

UnnecessaryRulesTest

UnnecessaryConversionTemporary::0 all glommed together 0.001
UnnecessaryConversionTemporary::1 called on String 0.001
UnnecessaryFinalModifier::0 TEST1 0.001
UnnecessaryFinalModifier::1 TEST2 0.002
UnnecessaryFinalModifier::2 TEST3 0.001
UnnecessaryFinalModifier::3 TEST4 0.002
UnnecessaryFinalModifier::4 TEST5 0.001
UnnecessaryFinalModifier::5 TEST6 0.001
UnnecessaryFinalModifier::6 final method in inner class of non-final outer class 0.001
UnnecessaryFinalModifier::7 final method in inner final class 0.001
UnnecessaryReturn::0 bad 0.001
UnnecessaryReturn::1 ok since method is not void 0.001
UnnecessaryReturn::2 ok since return is in sub block 0.001
UnnecessaryReturn::3 interface methods don't have return statements 0.001
UnnecessaryReturn::4 abstract methods don't have return statements 0.001
UnnecessaryReturn::5 return inside a catch - ok 0.001
UnusedNullCheckInEquals::0 failure case 0.001
UnusedNullCheckInEquals::1 different var, 'tis ok 0.001
UnusedNullCheckInEquals::2 proper usage 0.002
UnusedNullCheckInEquals::3 variation of correct usage 0.001
UnusedNullCheckInEquals::4 var is not used in equals() call 0.001
UnusedNullCheckInEquals::5 [ 1481051 ] false + UnusedNullCheckInEquals 0.002
UnusedNullCheckInEquals::6 shouldn't this fail? Yes, it should. Fixed it, so that method calls to equals on variables are considered, too. 0.001
UnusedNullCheckInEquals::7 Arrays can't be compared directly but with Arrays.equals(). 0.001
UselessOperationOnImmutable::0 useless operation on BigDecimal 0.001
UselessOperationOnImmutable::1 useless operation on BigInteger 0.002
UselessOperationOnImmutable::2 using the result, so OK 0.001
UselessOperationOnImmutable::3 using the result in a method call, so OK 0.001
UselessOperationOnImmutable::4 BigInteger obtained from compound method call 0.001
UselessOperationOnImmutable::5 Using generics on List, OK 0.002
UselessOperationOnImmutable::6 BigInteger in conditional statement 0.002
UselessOperationOnImmutable::7 1702782, Immutable used in comparison 0.001
UselessOperationOnImmutable::8 String calls in expressions 0.002
UselessOperationOnImmutable::9 BigInteger calls in expression 0.002
UselessOperationOnImmutable::10 2645268, ClassCastException using Annotation on Local Field 0.002
UselessOverridingMethod::0 call super 0.001
UselessOverridingMethod::1 call super with same argument 0.002
UselessOverridingMethod::2 call super with different argument 0.002
UselessOverridingMethod::3 call super with different argument 2 0.001
UselessOverridingMethod::4 call super with different argument 3 0.001
UselessOverridingMethod::5 call super with inverted arguments 0.001
UselessOverridingMethod::6 return value of super 0.002
UselessOverridingMethod::7 return value of super with argument 0.001
UselessOverridingMethod::8 return value of super after adding a string 0.001
UselessOverridingMethod::9 do not crash on abstract methods 0.001
UselessOverridingMethod::10 do not crash on interfaces 0.001
UselessOverridingMethod::11 do not crash on empty returns 0.001
UselessOverridingMethod::12 do not crash on super 0.002
UselessOverridingMethod::13 call super with different argument 4 0.001
UselessOverridingMethod::14 adding final is OK 0.001
UselessOverridingMethod::15 adding synchronized is OK 0.001
UselessOverridingMethod::16 Constructors are OK 0.001
UselessOverridingMethod::17 Should ignore clone implementation ( see bug 1522517) 0.001
UselessOverridingMethod::18 clone method with arguments should not be ignored 0.002
UselessOverridingMethod::19 False +: Overriding method merely calls super (see bug 1415525) 0
skipped
UselessOverridingMethod::19 False +: Overriding method merely calls super (see bug 1415525) 0
UselessOverridingMethod::20 [ 1977230 ] false positive: UselessOverridingMethod 0.002
UselessOverridingMethod::21 [ 2142986 ] UselessOverridingMethod doesn't consider annotations, ignoreAnnotations property set to true 0.002
UselessOverridingMethod::22 [ 2142986 ] UselessOverridingMethod doesn't consider annotations 0.001
UselessOverridingMethod::23 [ 2142986 ] UselessOverridingMethod doesn't consider annotations, @Override only 0.001
UselessParentheses::0 failure case, return statement 0.002
UselessParentheses::1 failure case, assignement 0.002
UselessParentheses::2 failure case, condition 1 0.002
UselessParentheses::3 failure case, condition 2 0.002
UselessParentheses::4 useful parentheses, arithmetic 0.002
UselessParentheses::5 useful parentheses, logic 0.002
UselessParentheses::6 typecast, ok 0.002
UselessParentheses::7 typecast with extra, bad 0.002
UselessParentheses::8 false negatives 0.003
UselessParentheses::9 Parentheses around binary expressions are really necessary 0.001
UselessParentheses::10 3526992, false +. In this case the parentheses must stay. 0.001
UselessParentheses::11 #1012 False positive: Useless parentheses. 0.002
UselessParentheses::12 #1111 False positive: Useless parentheses 0.002
UselessParentheses::13 #1102 False positive: shift operator parenthesis 0.001
UselessParentheses::14 #1243 Useless Parentheses False Positive 0.001

ResourceResolverTest

testResolve 0

TypePropertyTest

testType 0
testConstructors 0
testValueFrom 0
testAsDelimitedString 0
testErrorForBad 0
testErrorFor 0

ASTAnnotationTest

testAnnotationFailsWithJDK14 0
testAnnotationSucceedsWithJDK15 0
testAnnotationSucceedsWithDefaultMode 0.001

EncodingTest

testDecodingOfUTF8 0

CPDCommandLineInterfaceTest

testEncodingOption 0.009
testExcludes 0.004
testIgnoreIdentifiers 0.004
testBrokenAndValidFile 0.004

CouplingRulesTest

CouplingBetweenObjects::0 lots of coupling 0.004
CouplingBetweenObjects::1 no coupling 0.001
CouplingBetweenObjects::2 skip interfaces 0.001
ExcessiveImports::0 bad 0.002
ExcessiveImports::1 ok 0.001
LawOfDemeter::0 Simple method 0.014
LawOfDemeter::1 Mixed local and foreign method calls 0
LawOfDemeter::2 Simple Method calls without chaining 0
LawOfDemeter::3 Simple Method calls with chaining 0
LawOfDemeter::4 Simple Method calls with local created object 0
LawOfDemeter::5 Simple Method calls with local created object and variables 0
LawOfDemeter::6 Simple Method call on local created object within nesting local scopes 0
LawOfDemeter::7 Example documentation 0
LawOfDemeter::8 Static methods 0.003
LawOfDemeter::9 Exclude iterator and list elements 0.004
LawOfDemeter::10 #999 false positives 0.003
LawOfDemeter::11 #999 false negatives 0.002
LawOfDemeter::12 #1245 False Positive for Law of Demeter 0.002
LooseCoupling::0 returning a HashSet, bad 0.002
LooseCoupling::1 returning a Map, OK 0.002
LooseCoupling::2 no problemo 0.001
LooseCoupling::3 returning a set 0.001
LooseCoupling::4 field declared of type HashSet 0.002
LooseCoupling::5 field, return type both HashSet 0.001
LooseCoupling::6 two fields 0.002
LooseCoupling::7 method param is HashMap 0.001
LooseCoupling::8 Vector could be List 0.001
LooseCoupling::9 ArrayList could be List 0.002
LooseCoupling::10 #938 False positive on LooseCoupling for overriding methods 0.001
LoosePackageCoupling::0 default package: nothing configured, ok 0.003
LoosePackageCoupling::1 default package: unused package, ok 0.001
LoosePackageCoupling::2 default package: single package w/ exception, ok 0.001
LoosePackageCoupling::3 default package: single package w/o exception, bad 0.002
LoosePackageCoupling::4 default package: nested package w/o exception, bad 0.001
LoosePackageCoupling::5 default package: nested package w/ exception, bad 0.002
LoosePackageCoupling::6 some package: nothing configured, ok 0.001
LoosePackageCoupling::7 some package: unused package, ok 0.001
LoosePackageCoupling::8 some package: single package w/ exception, ok 0.001
LoosePackageCoupling::9 some package: single package w/o exception, bad 0.001
LoosePackageCoupling::10 some package: nested package w/o exception, but in same package, ok 0.001
LoosePackageCoupling::11 some package: nested package and sub-package, with different exceptions, bad 0.001
LoosePackageCoupling::12 bug fix: annotation before package 0.002

MethodNameDeclarationTest

testEquality 0

XmlParserTest

testParsingDoNotExpandEntities 0.039
testParsingIgnoreComments 0.003
testParsingNotNamespaceAware 0.002
testDefaultParsing 0.002
testParsingIgnoreElementContentWhitespace 0.002
testParsingWithValidation 0.004
testDefaultParsingNamespaces 0.003
testParsingCoalescingEnabled 0.003
testLineNumbers 0.004

ParserCornersTest

testInnerOuterClass 0
testGenericsProblem 0.001
testGetFirstASTNameImageNull 0.001
testParsersCases 0.052
testMultipleExceptionCatching 0.001
testCastLookaheadProblem 0.001

MethodScopeTest

testGenerics 0
testMethodName 0
testMethodParameterOccurrenceRecorded 0

FieldDeclTest

testFinal 0.001
testVolatile 0.001
testPrivate 0
testProtected 0
testPublic 0.001
testTransient 0
testStatic 0

SourceCodeTest

testSimple 0

StatementAndBraceFinderTest

testWhileStmtHasCorrectTypes 0.001
testForStmtHasCorrectTypes 0
testOnlyWorksForMethodsAndConstructors 0
testStatementExpressionParentChildLinks 0
testVariableDeclaratorParentChildLinks 0.001
testIfStmtHasCorrectTypes 0

PMDCoverageTest

testPmdOptions 3.365
testResourceFileCommands 31.268

GeneralFiddlingTest

test1 0

SuppressWarningsTest

testConstructorLevelSuppression 0
testNoSuppressionSomethingElseS 0
testMethodLevelSuppression 0
testParameterLevelSuppression 0
testSuppressAll 0
testInheritedSuppression 0
testSpecificSuppressionMulitpleValues1 0
testSpecificSuppressionMulitpleValues2 0
testSpecificSuppressionValue1 0.002
testSpecificSuppressionValue2 0.013
testSpecificSuppressionValue3 0
testFieldLevelSuppression 0
testSpecificSuppression 0
testNoSuppressionBlank 0
testLocalVariableLevelSuppression 0
testSpecificSuppressionAtTopLevel 0
testClassLevelSuppression 0.003

JDKVersionTest

testMultipleGenerics 0
testGenericsInMethodCall 0
testTryWithResourcesWithAnnotations 0
testMulticatchWithAnnotations 0
testTryWithResourcesMulti 0
testTryWithResources 0
testJDK15GenericsSyntaxShouldPassWith15 0
testJDK15ForLoopSyntaxShouldPassWith15 0
testJDK15ForLoopSyntaxWithModifiers 0.001
testVariousParserBugs 0.002
testNestedClassInMethodBug 0.001
testTryWithResourcesSemi 0.001
testAssertAsVariableDeclIdentifierFailsWith1_4 0
testVarargsShouldFailWith14 0
testEnumAsKeywordShouldFailWith14 0
testBinaryAndUnderscoresInNumericalLiterals 0.005
testAssertAsKeywordFailsWith1_3 0.001
testVarargsShouldPassWith15 0
testEnumAsKeywordShouldPassWith15 0
testJDK15ForLoopShouldFailWith14 0
testAssertAsKeywordVariantsSucceedWith1_4 0
testAssertAsIdentifierSucceedsWith1_3 0
testGenericINAnnotation 0
testMulticatch 0
testAnnotatedLocals 0
testGenericDiamond 0
testAnnotatedParams 0
testStringInSwitch 0
testAssertAsMethodNameIdentifierFailsWith1_4 0
testGenericReturnType 0
testAssertAsIdentifierSucceedsWith1_3_test2 0
testEnumAsIdentifierShouldFailWith15 0
testEnumAsIdentifierShouldPassWith14 0

RuleSetWriterTest

testWrite 0.002

AbstractXmlRuleTest

testVisit 0.001

ViolationNodeTest

testEqualsNodeWithTwoDifferentViolationsDifferentEndColumn 0.103
testEqualsNodeWithTwoDifferentViolationsDifferentVariableName 0.001
testEqualsNodeWithTwoDifferentViolationsDifferentBeginColumn 0.001
testEqualsNodeWithTwoDifferentViolationsDifferentBeginLine 0.001
testEqualsNodeWithTwoEqualViolations 0.001
testEqualsNodeWithTwoDifferentViolationsDifferentFilename 0.001
testEqualsNodeWithTwoDifferentViolationsDifferentEndLine 0.001

MethodDeclTest

testAbstract 0
testFinal 0
testPrivate 0.001
testSynchronized 0
testProtected 0.001
testNative 0
testPublic 0
testStrict 0

StatisticalRuleTest

testExpectedMinimum 0
testMS1 0.001
testMS2 0.002
testMS3 0.002
testMS4 0.002
testMS5 0.002
testMT1 0.001
testMT2 0.001
testMT3 0.001
testMT4 0.002
testMT5 0.001
testSM1 0.001
testSM2 0.002
testSM3 0.001
testSM4 0.001
testSM5 0.002
testSMT 0.001
testST1 0.002
testST2 0.001
testST3 0.001
testST4 0.001
testST5 0.001
testSTM 0
testTM1 0
testTM2 0.001
testTM3 0.001
testTM4 0.001
testTM5 0.002
testTMS 0
testTS1 0.001
testTS2 0.001
testTS3 0.001
testTS4 0.001
testTS5 0.001
testSMT1 0.001
testSMT2 0.001
testSMT3 0
testSMT4 0.001
testSMT5 0.001
testSTM1 0.001
testSTM2 0.001
testSTM3 0.001
testSTM4 0.001
testSTM5 0.001
testTMS1 0
testTMS2 0.001
testTMS3 0.012
testTMS4 0
testTMS5 0
testM1 0
testM2 0
testM3 0
testM4 0
testM5 0
testMS 0.001
testMT 0.001
testS1 0.001
testS2 0.002
testS3 0.001
testS4 0.001
testS5 0.002
testSM 0.001
testT1 0.003
testT2 0.001
testT3 0.001
testT4 0.002
testST 0.002
testT5 0.002
testTM 0.001
testTS 0.002
testM 0.001
testS 0.001
testT 0.001
testSingleDatapoint 0.001
testMetrics 0.002

BasicRulesTest

AvoidBranchingStatementAsLastInLoop::0 ok: no violations 0.016
AvoidBranchingStatementAsLastInLoop::1 violations: break:for/do/while, continue:for/do/while and return:for/do/while 0.014
AvoidBranchingStatementAsLastInLoop::2 violations: break:for/do/while 0.014
AvoidBranchingStatementAsLastInLoop::3 violations: continue:for/do/while 0.015
AvoidBranchingStatementAsLastInLoop::4 violations: return:for/do/while 0.015
AvoidBranchingStatementAsLastInLoop::5 violations: break:for 0.015
AvoidBranchingStatementAsLastInLoop::6 violations: break:do 0.017
AvoidBranchingStatementAsLastInLoop::7 violations: break:while 0.017
AvoidBranchingStatementAsLastInLoop::8 violations: continue:for 0.017
AvoidBranchingStatementAsLastInLoop::9 violations: continue:do 0.027
AvoidBranchingStatementAsLastInLoop::10 violations: continue:while 0.019
AvoidBranchingStatementAsLastInLoop::11 violations: return:for 0.016
AvoidBranchingStatementAsLastInLoop::12 violations: return:do 0.016
AvoidBranchingStatementAsLastInLoop::13 violations: return:while 0.016
AvoidBranchingStatementAsLastInLoop::14 #1170 false positive with switch in loop 0.016
AvoidDecimalLiteralsInBigDecimalConstructor::0 bad, new BigDecimal(.1) 0.015
AvoidDecimalLiteralsInBigDecimalConstructor::1 ok, new BigDecimal(".1") 0.016
AvoidDecimalLiteralsInBigDecimalConstructor::2 ok, new BigDecimal(10) 0.015
AvoidDecimalLiteralsInBigDecimalConstructor::3 bad, same as #1 but outside an initializer context 0.016
AvoidDecimalLiteralsInBigDecimalConstructor::4 #1187 double variable with AvoidDecimalLiteralsInBigDecimalConstructor 0.018
AvoidMultipleUnaryOperators::0 Simple duplicate typos 0.016
AvoidMultipleUnaryOperators::1 Compound 0.025
AvoidMultipleUnaryOperators::2 Compound with parentheses 0.019
AvoidMultipleUnaryOperators::3 Compound with parentheses an mixed operators 0.024
AvoidMultipleUnaryOperators::4 Multiple levels of nested parentheses 0.023
AvoidThreadGroup::0 bad, using new ThreadGroup() 0.015
AvoidThreadGroup::1 bad, using fully qualified java.lang.ThreadGroup() 0.016
AvoidThreadGroup::2 bad, using Thread.getThreadGroup() 0.016
AvoidThreadGroup::3 bad, using System.getSecurityManager().getThreadGroup() 0.016
AvoidThreadGroup::4 ThreadGroup() but not java.lang.ThreadGroup 0.019
AvoidThreadGroup::5 MyThreadGroup() not java.lang.ThreadGroup 0.016
AvoidThreadGroup::6 false positive, bug #1018 0.017
AvoidUsingHardCodedIP::0 Comprehensive, check for IPv4 mapped IPv6 xxx 0.017
AvoidUsingHardCodedIP::1 Common basic case 0.016
AvoidUsingHardCodedIP::2 Not detected via string concatenation. 0.016
AvoidUsingHardCodedIP::3 Null literal does not puke. 0.015
AvoidUsingHardCodedIP::4 Non String literal does not puke. 0.013
AvoidUsingHardCodedIP::5 Not an ip address string 0.013
AvoidUsingHardCodedIP::6 Comprehensive, check IPv4, IPv6, and IPv4 mapped IPv6 0.014
AvoidUsingHardCodedIP::7 Comprehensive, check for nothing 0.014
AvoidUsingHardCodedIP::8 Comprehensive, check for IPv4 0.014
AvoidUsingHardCodedIP::9 Comprehensive, check for IPv6 0.014
AvoidUsingHardCodedIP::10 Comprehensive, check for IPv4 mapped IPv6 0.015
AvoidUsingHardCodedIP::11 Comprehensive, check for IPv6 and IPv4 mapped IPv6 0.016
AvoidUsingOctalValues::0 bad, 012 0.014
AvoidUsingOctalValues::1 OK, hex value 0.015
AvoidUsingOctalValues::2 OK, long value 0.016
AvoidUsingOctalValues::3 OK, double value 0.013
AvoidUsingOctalValues::4 OK, double value 0.013
AvoidUsingOctalValues::5 bad, 012L 0.013
AvoidUsingOctalValues::6 OK, 06 if strict is not set 0.013
AvoidUsingOctalValues::7 BAD, 06 if strict is set 0.013
BigIntegerInstantiation::0 Fail, BigInteger(1) 0.014
BigIntegerInstantiation::1 Pass, BigInteger(10) 0.013
BigIntegerInstantiation::2 Fail, BigInteger(0) 0.013
BigIntegerInstantiation::3 Pass, BigDecimal(i - 1) 0.024
BigIntegerInstantiation::4 Pass, BigInteger("10") and BigDecimal in 1.4 mode 0.015
BigIntegerInstantiation::5 Fail, BigInteger(10) 1.5 mode 0.015
BigIntegerInstantiation::6 Fail, BigDecimal(1) 0.015
BigIntegerInstantiation::7 Fail, BigDecimal(10) 0.015
BigIntegerInstantiation::8 Fail, BigDecimal(0) 0.015
BooleanInstantiation::0 simple failure case 0.013
BooleanInstantiation::1 new java.lang.Boolean 0.013
BooleanInstantiation::2 ok 0.014
BooleanInstantiation::3 don't use Boolean.valueOf() with literal 0.014
BooleanInstantiation::4 valueOf() with variable is fine 0.015
BooleanInstantiation::5 don't use Boolean.valueOf() with string literal 0.015
BooleanInstantiation::6 don't use Boolean.valueOf() in method call 0.015
BooleanInstantiation::7 don't use new Boolean() in method call 0.016
BooleanInstantiation::8 ok 0.014
BooleanInstantiation::9 ok 0.015
BooleanInstantiation::10 don't use new Boolean() in static block 0.013
BooleanInstantiation::11 Bug 1744065, should be ok 0.013
BooleanInstantiation::12 Test for failure after rule with custom Boolean, should report failure if rule reset done correctly 0.013
BrokenNullCheck::0 should be && 0.013
BrokenNullCheck::1 Ok, is && 0.013
BrokenNullCheck::2 should be &&, but now with a longer expression 0.014
BrokenNullCheck::3 should be || 0.013
BrokenNullCheck::4 Ok, is || 0.013
BrokenNullCheck::5 Arrays are Ok 0.013
BrokenNullCheck::6 Different method is Ok 0.013
BrokenNullCheck::7 Using a shorter expression with the same variable in the second check should not crash the test 0.016
BrokenNullCheck::8 1633683, should be ||, but now with another compare 0.017
BrokenNullCheck::9 1633683, Arrays are Ok II 0.013
BrokenNullCheck::10 Different literals in variables should not match 0.013
BrokenNullCheck::11 Assigments in checks are OK 0.013
BrokenNullCheck::12 Similar method calls with different arguments are OK 0.015
CheckResultSet::0 The result set is appropriately tested before using it, no violation. 0.028
CheckResultSet::1 This most common violation case, not testing is done before a call to 'last()'. 0.013
CheckResultSet::2 This most common violation case, not testing is done before a call to 'first()'. 0.015
CheckResultSet::3 Using a 'while' instead of 'if' shouldn't result in a violation. 0.014
CheckResultSet::4 #942 CheckResultSet False Positive 0.015
CheckResultSet::5 #1135 CheckResultSet ignores results set declared outside of try/catch (good case) 0.015
CheckResultSet::6 #1135 CheckResultSet ignores results set declared outside of try/catch 0.014
CheckResultSet::7 #1135 CheckResultSet ignores results set declared outside of try/catch - prevent false positive 0.013
CheckResultSet::8 #1199 PMD CheckResultSet gives false positive in a do/while loop 0.014
CheckSkipResult::0 failure case 0.015
CheckSkipResult::1 failure case but obfuscated 0.014
CheckSkipResult::2 return value is assigned to a variable 0.014
CheckSkipResult::3 return value is used in a function 0.013
CheckSkipResult::4 return value is returned 0.013
ClassCastExceptionWithToArray::0 bad, toArray() with cast 0.013
ClassCastExceptionWithToArray::1 ok, no cast 0.015
ClassCastExceptionWithToArray::2 Ensuring we don't have a few specific false positives, see bug 1697397 0.015
ClassCastExceptionWithToArray::3 #975 false positive in ClassCastExceptionWithToArray 0.014
ClassCastExceptionWithToArray::4 #998 False positive ClassCastExceptionWithToArray with generics 0.013
CollapsibleIfStatements::0 failure case 0.014
CollapsibleIfStatements::1 ok, intervening statements 0.013
CollapsibleIfStatements::2 ok, different intervening statements 0.013
DontCallThreadRun::0 basic use case - calls to run() 0.014
DontCallThreadRun::1 basic use case - call to Thread().run() 0.013
DontUseFloatTypeForLoopIndices::0 basic test case 0.013
DontUseFloatTypeForLoopIndices::1 Should be all OK 0.014
DoubleCheckedLocking::0 simple ok 0.013
DoubleCheckedLocking::1 simple failure 0.013
DoubleCheckedLocking::2 skip interfaces 0.012
DoubleCheckedLocking::3 Generics 0.014
DoubleCheckedLocking::4 inversed null check see bug 2835074 False -: DoubleCheckedLocking with reversed null check (1) 0.014
DoubleCheckedLocking::5 inversed null check see bug 2835074 False -: DoubleCheckedLocking with reversed null check (2) 0.021
DoubleCheckedLocking::6 Use of volatile keyword see #884 False +: DoubleCheckedLocking warning with volatile field 0.016
ExtendsObject::0 failure case 0.012
ExtendsObject::1 extends nothing 0.013
ExtendsObject::2 extends not Object 0.012
ForLoopShouldBeWhileLoop::0 simple failure case 0.013
ForLoopShouldBeWhileLoop::1 ok 0.014
ForLoopShouldBeWhileLoop::2 for loop like this: for (;;) {} 0.013
ForLoopShouldBeWhileLoop::3 JDK 1.5 for loop 0.014
JumbledIncrementer::0 1 0.013
JumbledIncrementer::1 2 0.012
JumbledIncrementer::2 3 0.013
JumbledIncrementer::3 using outer loop incrementor as array index is OK 0.014
MisplacedNullCheck::0 null check after method invocation with conditional AND and != 0.014
MisplacedNullCheck::1 null check after nested method invocation 0.015
MisplacedNullCheck::2 null check before nested method invocation 0.015
MisplacedNullCheck::3 1610730: null check after method invocation with conditional OR and == 0.015
MisplacedNullCheck::4 3372128: False positive: ArrayIsStoredDirectly 0.014
MisplacedNullCheck::5 #977 MisplacedNullCheck makes false positives 0.013
OverrideBothEqualsAndHashcode::0 hash code only 0.013
OverrideBothEqualsAndHashcode::1 equals only 0.012
OverrideBothEqualsAndHashcode::2 overrides both 0.014
OverrideBothEqualsAndHashcode::3 overrides neither 0.015
OverrideBothEqualsAndHashcode::4 equals sig uses String, not Object 0.014
OverrideBothEqualsAndHashcode::5 interface 0.015
OverrideBothEqualsAndHashcode::6 java.lang.Object 0.012
OverrideBothEqualsAndHashcode::7 skip Comparable implementations 0.013
OverrideBothEqualsAndHashcode::8 implements equals but with 2 args 0.012
OverrideBothEqualsAndHashcode::9 overloaded hashCode 0.013
OverrideBothEqualsAndHashcode::10 overloaded both 0.012
OverrideBothEqualsAndHashcode::11 overloaded hashCode, should fail on equals 0.013
OverrideBothEqualsAndHashcode::12 implements hashCode but with args 0.012
OverrideBothEqualsAndHashcode::13 implements interface other than Comparable 0.026
ReturnFromFinallyBlock::0 throw exception but return from finally 0.013
ReturnFromFinallyBlock::1 lots of returns 0.015
ReturnFromFinallyBlock::2 ok 0.013

PMDCommandLineInterfaceTest

testProperties 0.005

PapariTextRendererTest

testNullPassedIn 0
testError 0
testRendererMultiple 0.001
testRenderer 0
testRendererEmpty 0

ASTBooleanLiteralTest

testFalse 0.001
testTrue 0

RuleViolationComparatorTest

testComparator 0

AbstractCommentRuleTest

testCommentAssignments 0
testFilteredCommentIn 0

ASTPrimarySuffixTest

testArrayDereference 0
testArguments 0

PMDTaskTest

testEcmascript 0.285
testXML 0.216
testBasic 0.112
testExplicitRuleInRuleSet 0.187
testFormatterWithNoToFileAttribute 0.062
testInvalidLanguageVersion 0.038
testAbstractNames 0.699
testAbstractNamesInNestedRuleset 0.412
testRelativeRulesetsInRulesetfiles 0.335
testNoFormattersValidation 0.412
testCommaInRulesetfiles 0.345
testClasspath 0.038
testRelativeRulesets 0.276
testNoRuleSets 0.048
testNestedRuleset 0.39
testFormatterWithProperties 0.296

TokenEntryTest

testSimple 0

OptimizationsRulesTest

AddEmptyString::0 Bad add 0.003
AddEmptyString::1 Good add 0.002
AddEmptyString::2 Good convert 0.002
AvoidArrayLoops::0 copy index into array 0.002
AvoidArrayLoops::1 copy one array to another 0.002
AvoidArrayLoops::2 copy via while loop 0.002
AvoidArrayLoops::3 copy involving multiple arrays is ok 0.002
AvoidArrayLoops::4 copy involving method invocation on array element is ok 0.002
AvoidArrayLoops::5 using an offset, still bad 0.002
AvoidArrayLoops::6 nested arrays on LHS, ok 0.001
AvoidArrayLoops::7 adding to array is ok 0.002
AvoidInstantiatingObjectsInLoops::0 TEST1 0.002
AvoidInstantiatingObjectsInLoops::1 TEST2 0.001
AvoidInstantiatingObjectsInLoops::2 TEST3 0.001
AvoidInstantiatingObjectsInLoops::3 TEST4 0.001
AvoidInstantiatingObjectsInLoops::4 throw new is OK 0.002
AvoidInstantiatingObjectsInLoops::5 return new in loop is OK 0.001
AvoidInstantiatingObjectsInLoops::6 #1215 AvoidInstantiatingObjectsInLoops matches the right side of a list iteration loop 0.002
LocalVariableCouldBeFinal::0 TEST1 0.001
LocalVariableCouldBeFinal::1 TEST2 0.001
LocalVariableCouldBeFinal::2 TEST3 0.001
LocalVariableCouldBeFinal::3 TEST4 0.002
LocalVariableCouldBeFinal::4 TEST5 0.001
LocalVariableCouldBeFinal::5 TEST6 0.001
LocalVariableCouldBeFinal::6 TEST7 0.001
LocalVariableCouldBeFinal::7 TEST8 0.001
LocalVariableCouldBeFinal::8 TEST9 0.001
LocalVariableCouldBeFinal::9 Bug 2614040 : false + if a += assignment operator is used inside a method call. 0.001
LocalVariableCouldBeFinal::10 Bug #1047 False Positive in 'for' loops for LocalVariableCouldBeFinal in 5.0.1 0.002
LocalVariableCouldBeFinal::11 Verify another case for Bug #1047 False Positive in 'for' loops for LocalVariableCouldBeFinal in 5.0.1 0.002
MethodArgumentCouldBeFinal::0 TEST1 0.001
MethodArgumentCouldBeFinal::1 TEST2 0.001
MethodArgumentCouldBeFinal::2 TEST3 0.001
MethodArgumentCouldBeFinal::3 TEST4 0.002
MethodArgumentCouldBeFinal::4 TEST5 0.001
MethodArgumentCouldBeFinal::5 TEST6 0.001
MethodArgumentCouldBeFinal::6 Shouldn't trigger on try blocks 0.001
MethodArgumentCouldBeFinal::7 Skip native methods 0.002
MethodArgumentCouldBeFinal::8 Skip abstract methods 0.001
MethodArgumentCouldBeFinal::9 self assignment of a method param means it can't be final 0.001
MethodArgumentCouldBeFinal::10 same as above but prefix vs postfix 0.001
MethodArgumentCouldBeFinal::11 same as above but with extra parenthesis 0.001
MethodArgumentCouldBeFinal::12 bug 1808158 - Constructor args could also be final 0.002
PrematureDeclaration::0 premature declaration before unrelated test 0.001
PrematureDeclaration::1 optimal var declaration position 0.001
PrematureDeclaration::2 Bug #1064 Exception running PrematureDeclaration 0.001
RedundantFieldInitializer::0 multiple declarations 0.001
RedundantFieldInitializer::1 references 0.001
RedundantFieldInitializer::2 arrays of primitives 0.002
RedundantFieldInitializer::3 arrays of objects 0.001
RedundantFieldInitializer::4 mixed arrays 0.001
RedundantFieldInitializer::5 nested class 0.002
RedundantFieldInitializer::6 boolean 0.002
RedundantFieldInitializer::7 byte 0.003
RedundantFieldInitializer::8 char 0.005
RedundantFieldInitializer::9 short 0.005
RedundantFieldInitializer::10 int 0.006
RedundantFieldInitializer::11 long 0.003
RedundantFieldInitializer::12 float 0.005
RedundantFieldInitializer::13 double 0.005
SimplifyStartsWith::0 failure case 0.002
SimplifyStartsWith::1 startsWith multiple chars 0.001
SimplifyStartsWith::2 startsWith defined on some other class, doesn't take a String 0.001
UnnecessaryWrapperObjectCreation::0 failure case 0.001
UnnecessaryWrapperObjectCreation::1 calling valueOf is OK 0.001
UnnecessaryWrapperObjectCreation::2 failure case for 1.5+ 0.002
UnnecessaryWrapperObjectCreation::3 Patch 2075906: Add toString() to the rule UnnecessaryWrapperObjectCreation 0.001
UnnecessaryWrapperObjectCreation::4 #1057 False positive for UnnecessaryWrapperObjectCreation 0.001
UseArrayListInsteadOfVector::0 TEST0 0.002
UseArrayListInsteadOfVector::1 TEST1 0.001
UseArrayListInsteadOfVector::2 TEST2 0.001
UseArrayListInsteadOfVector::3 TEST3 0.002
UseArrayListInsteadOfVector::4 #1146 real problem 0.001
UseArrayListInsteadOfVector::5 #1146 UseArrayListInsteadOfVector false positive when using own Vector class 0.001
UseArraysAsList::0 failure case 0.002
UseArraysAsList::1 adding first element repeatedly 0.002
UseArraysAsList::2 inside conditional 0.002
UseArraysAsList::3 adding new object 0.002
UseArraysAsList::4 calling method 0.002
UseArraysAsList::5 Integer array passed as argument 0.003
UseArraysAsList::6 #1099 UseArraysAsList false positives 0.003
UseStringBufferForStringAppends::0 failure case 0.002
UseStringBufferForStringAppends::1 concat inside method call 0
UseStringBufferForStringAppends::2 startsWith 0
UseStringBufferForStringAppends::3 compound append, should only report 1 failure 0.001
UseStringBufferForStringAppends::4 failure case 0.001
UseStringBufferForStringAppends::5 static failure case 0.002
UseStringBufferForStringAppends::6 reference self 0.003
UseStringBufferForStringAppends::7 false positive bug #2002722 0.002
UseStringBufferForStringAppends::8 false positive bug #2002722, different bug in comment section 0.001

VBHTMLRendererTest

testNullPassedIn 0
testError 0
testRendererMultiple 0.001
testRenderer 0
testRendererEmpty 0.001

DesignerTest

testCopyXmlToClipboard 0.008

ASTInitializerTest

testDontCrashOnBlockStatement 0

TextPadRendererTest

testNullPassedIn 0
testError 0
testRendererMultiple 0
testRenderer 0.001
testRendererEmpty 0

AndroidRulesTest

CallSuperFirst::0 Success 0.004
CallSuperFirst::1 Success 0.004
CallSuperFirst::2 Failure 0.003
CallSuperFirst::3 #1154 Call super onPause when there is no super 0.003
CallSuperLast::0 Success 0.003
CallSuperLast::1 Failure 0.002
CallSuperLast::2 #1154 Call super onPause when there is no super 0.002
DoNotHardCodeSDCard::0 basic /sdcard test 0.003

XPathJspRuleTest

testExpressionMatching 0.002

SourceCodePositionerTest

testLineNumberFromOffset 0

CloneRulesTest

CloneMethodMustImplementCloneable::0 ok, implements Cloneable 0.002
CloneMethodMustImplementCloneable::1 bad, doesn't implement Cloneable 0.001
CloneMethodMustImplementCloneable::2 ok, not Object.clone since method has a param 0.002
CloneMethodMustImplementCloneable::3 ok, doesn't implement Cloneable but only throw CloneNotSupportedException 0.001
CloneMethodMustImplementCloneable::4 ok, inner class implements Cloneable 0.001
CloneMethodMustImplementCloneable::5 Bug 1698550, nr 1 0.001
CloneMethodMustImplementCloneable::6 Bug 1698550, nr 2 0.002
CloneThrowsCloneNotSupportedException::0 ok, throws CloneNotSupportedException 0.001
CloneThrowsCloneNotSupportedException::1 bad 0.001
CloneThrowsCloneNotSupportedException::2 final class, rule does not apply 0.001
CloneThrowsCloneNotSupportedException::3 testing with multiple methods 0.001
ProperCloneImplementation::0 ok, calls super.clone 0.001
ProperCloneImplementation::1 bad, Foo.clone() calls new Foo(); 0.001
ProperCloneImplementation::2 clone([whatever]) is fine 0.001
ProperCloneImplementation::3 bad, Foo.clone() calls new Foo(); 0.001

ASTLocalVariableDeclarationTest

testMultDimArraySplitBraces 0.001
testSingleDimArray 0
testMultDimArray 0

ASTSwitchLabelTest

testDefaultOff 0.001
testDefaultSet 0.001

XMLRendererTest

testErrorReport 0.001
testTwoFiles 0.002
testSingleReport 0.001
testEmptyReport 0
testDoubleReport 0.001

RuleContextTest

testSourceCodeFilename 0
testAttributes 0
testSharedAttributes 0
testSourceCodeFile 0
testReport 0

Failure Details

[Summary] [Package List] [Test Cases]


net.sourceforge.pmd.util.database.DBMSMetadataTest
skipped: skipped
UseVarargs::4 method, do not varargs as the signature is dictated by an interface // TODO Once this is implemented, perhaps it should be optional? The compiler will technically let you use varargs.
skipped: skipped
ConsecutiveLiteralAppends::44 43, Using variable char array
skipped: skipped
testFloats
skipped: skipped
UnusedPrivateMethod::21 #46 False +: Unused private field: call to instance of self, received from another class
skipped: skipped
net.sourceforge.pmd.lang.java.rule.typeresolution.xml.MyTestCase
skipped: skipped
UselessOverridingMethod::19 False +: Overriding method merely calls super (see bug 1415525)
skipped: skipped