##### Overview

- Download PMD 5.0.5
- What's new in PMD 5.0.5
- PMD in the news
- PMD-related products and books
- Best practices
- Future directions
- Similar projects
- Credits
- License
- What does 'PMD' mean?

##### Usage

- Installation
- Command line usage
- Ant task usage
- Maven plugin usage
- Mvn plugin usage
- IDE plugin usage
- Suppressing warnings
- Finding duplicated code
- JSP support

##### Customizing PMD

- Compiling PMD
- How to write a rule
- Writing XPath rules
- How to make a rule set
- How it works
- Rule guidelines
- PMD developers information
- PMD Release Process

##### For example

- Run PMD on a Sourceforge project

##### Misc.

- XPath tutorial (Gregorian)

##### Rule Sets

- ecmascript
  - Basic Ecmascript
  - Braces
  - Unnecessary
- java
  - Android
  - Basic
  - Braces
  - Clone Implementation
  - Code Size
  - Comments
  - Controversial
  - Coupling
  - Design
  - Empty Code
  - Finalizer
  - Import Statements
  - J2EE
  - JavaBeans
  - JUnit
  - Jakarta Commons Logging
  - Java Logging
  - Migration
  - Naming
  - Optimization
  - Strict Exceptions
  - String and StringBuffer
  - Security Code Guidelines
  - Type Resolution
  - Unnecessary
  - Unused Code
- jsp
  - Basic JSF
  - Basic JSP
- xml
  - Basic XML
- xsl
  - XPath in XSL

##### Project Documentation

- Project Information
- Project Reports
  - Source Xref
  - Test Source Xref
  - JavaDocs
  - Test JavaDocs
  - PMD Report
  - CPD Report
  - Checkstyle
  - Checkstyle
  - Surefire Report
  - Clover

## Surefire Report

## Summary

[Summary] [Package List] [Test Cases]

Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | ---
930 | 0 | 0 | 6 | 99.355% | 51.849

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 | 6 | 0 | 0 | 0 | 100% | 1.173
net.sourceforge.pmd.symboltable | 82 | 0 | 0 | 0 | 100% | 0.118
net.sourceforge.pmd.lang.java.rule.naming | 1 | 0 | 0 | 0 | 100% | 0.266
net.sourceforge.pmd.renderers | 56 | 0 | 0 | 0 | 100% | 1.755
net.sourceforge.pmd.lang.java.rule.unnecessary | 1 | 0 | 0 | 0 | 100% | 0.527
net.sourceforge.pmd.lang.ecmascript.ast | 3 | 0 | 0 | 0 | 100% | 0.001
net.sourceforge.pmd.lang.java.rule.migrating | 1 | 0 | 0 | 0 | 100% | 0.255
net.sourceforge.pmd.lang.jsp.rule.basic | 1 | 0 | 0 | 0 | 100% | 0.059
net.sourceforge.pmd.lang.java.rule.strictexception | 1 | 0 | 0 | 0 | 100% | 0.233
net.sourceforge.pmd.lang.java.rule.unusedcode | 1 | 0 | 0 | 0 | 100% | 0.138
net.sourceforge.pmd.ast | 133 | 0 | 0 | 0 | 100% | 0.66
net.sourceforge.pmd.lang.ecmascript | 4 | 0 | 0 | 0 | 100% | 0.001
net.sourceforge.pmd.ant | 17 | 0 | 0 | 0 | 100% | 7.576
net.sourceforge.pmd.lang.java.rule.imports | 1 | 0 | 0 | 0 | 100% | 0.223
net.sourceforge.pmd.lang.java.rule.typeresolution.xml | 1 | 0 | 0 | 1 | 0% | 0.001
net.sourceforge.pmd.lang.jsp.rule.basicjsf | 1 | 0 | 0 | 0 | 100% | 0.002
net.sourceforge.pmd.lang.xsl.rule.xpath | 1 | 0 | 0 | 0 | 100% | 0.027
net.sourceforge.pmd.util | 19 | 0 | 0 | 0 | 100% | 0.036
net.sourceforge.pmd.lang.xml.rule | 4 | 0 | 0 | 0 | 100% | 0.065
net.sourceforge.pmd.util.filter | 5 | 0 | 0 | 0 | 100% | 0.002
net.sourceforge.pmd.lang.ecmascript.rule.basic | 1 | 0 | 0 | 0 | 100% | 0.13
net.sourceforge.pmd.lang.ast.xpath | 1 | 0 | 0 | 0 | 100% | 0
net.sourceforge.pmd.typeresolution | 17 | 0 | 0 | 0 | 100% | 0.069
net.sourceforge.pmd.testframework | 3 | 0 | 0 | 3 | 0% | 0.854
net.sourceforge.pmd.lang.java.rule.clone | 1 | 0 | 0 | 0 | 100% | 0.05
net.sourceforge.pmd.lang.java.rule.optimizations | 1 | 0 | 0 | 0 | 100% | 0.524
net.sourceforge.pmd.lang.java.rule.loggingjakartacommons | 1 | 0 | 0 | 0 | 100% | 0.061
net.sourceforge.pmd.jaxen | 17 | 0 | 0 | 0 | 100% | 0.425
net.sourceforge.pmd.lang.java.rule.comments | 2 | 0 | 0 | 0 | 100% | 0.007
net.sourceforge.pmd.properties | 61 | 0 | 0 | 1 | 98.361% | 0.032
net.sourceforge.pmd.lang.java.rule | 2 | 0 | 0 | 0 | 100% | 0.004
net.sourceforge.pmd.lang.jsp.ast | 50 | 0 | 0 | 0 | 100% | 0.037
net.sourceforge.pmd.cli | 4 | 0 | 0 | 0 | 100% | 0.915
net.sourceforge.pmd.lang.java.rule.braces | 1 | 0 | 0 | 0 | 100% | 0.033
net.sourceforge.pmd.lang.xml | 4 | 0 | 0 | 0 | 100% | 0.003
net.sourceforge.pmd.lang.java.rule.android | 1 | 0 | 0 | 0 | 100% | 0.037
net.sourceforge.pmd.lang.ecmascript.rule.braces | 1 | 0 | 0 | 0 | 100% | 0.028
net.sourceforge.pmd.lang.java.rule.empty | 1 | 0 | 0 | 0 | 100% | 0.253
net.sourceforge.pmd.lang.cpp | 1 | 0 | 0 | 0 | 100% | 0
net.sourceforge.pmd.lang.java.rule.codesize | 8 | 0 | 0 | 0 | 100% | 0.167
net.sourceforge.pmd.lang.dfa.report | 7 | 0 | 0 | 0 | 100% | 0.265
net.sourceforge.pmd.lang.java.rule.junit | 1 | 0 | 0 | 0 | 100% | 0.611
net.sourceforge.pmd.lang.ecmascript.rule.unnecessary | 1 | 0 | 0 | 0 | 100% | 0.026
net.sourceforge.pmd.stat | 82 | 0 | 0 | 0 | 100% | 0.78
net.sourceforge.pmd.lang.java.rule.controversial | 1 | 0 | 0 | 0 | 100% | 0.272
net.sourceforge.pmd.dfa | 46 | 0 | 0 | 0 | 100% | 0.206
net.sourceforge.pmd.lang.java.rule.finalizers | 1 | 0 | 0 | 0 | 100% | 0.043
net.sourceforge.pmd | 199 | 0 | 0 | 0 | 100% | 3.581
net.sourceforge.pmd.lang.java.rule.javabeans | 1 | 0 | 0 | 0 | 100% | 0.04
net.sourceforge.pmd.coverage | 2 | 0 | 0 | 0 | 100% | 19.024
net.sourceforge.pmd.lang | 2 | 0 | 0 | 0 | 100% | 0.001
net.sourceforge.pmd.lang.java.rule.loggingjava | 1 | 0 | 0 | 0 | 100% | 0.039
net.sourceforge.pmd.lang.java.rule.coupling | 1 | 0 | 0 | 0 | 100% | 0.07
net.sourceforge.pmd.lang.java.rule.sunsecure | 1 | 0 | 0 | 0 | 100% | 0.05
net.sourceforge.pmd.lang.java.rule.typeresolution | 4 | 0 | 0 | 0 | 100% | 0.045
net.sourceforge.pmd.lang.java.rule.basic | 1 | 0 | 0 | 0 | 100% | 2.652
xml.java-design.UseVarargs:method\u002C do not varargs as the signature is dictated by an interface\n\/\/ TODO Once this is implemented\u002C perhaps it should be optional? The compiler will technically let you use varargs.(net.sourceforge.pmd.testframework | 1 | 0 | 0 | 1 | 0% | 2.284
net.sourceforge.pmd.lang.java.rule.j2ee | 1 | 0 | 0 | 0 | 100% | 0.104
net.sourceforge.pmd.lang.xml.rule.basic | 1 | 0 | 0 | 0 | 100% | 0.063
net.sourceforge.pmd.lang.java.rule.design | 9 | 0 | 0 | 0 | 100% | 4.812
net.sourceforge.pmd.cpd | 50 | 0 | 0 | 0 | 100% | 0.134

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.041
| StringsRulesTest | 1 | 0 | 0 | 0 | 100% | 1.132

### net.sourceforge.pmd.symboltable

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| SourceFileScopeTest | 4 | 0 | 0 | 0 | 100% | 0.002
| AcceptanceTest | 8 | 0 | 0 | 0 | 100% | 0.012
| TypeSetTest | 18 | 0 | 0 | 0 | 100% | 0.017
| ClassScopeTest | 19 | 0 | 0 | 0 | 100% | 0.034
| ScopeCreationVisitorTest | 1 | 0 | 0 | 0 | 100% | 0
| ImageFinderFunctionTest | 2 | 0 | 0 | 0 | 100% | 0.001
| GlobalScopeTest | 2 | 0 | 0 | 0 | 100% | 0.002
| VariableNameDeclarationTest | 8 | 0 | 0 | 0 | 100% | 0.016
| NameOccurrencesTest | 7 | 0 | 0 | 0 | 100% | 0.021
| LocalScopeTest | 8 | 0 | 0 | 0 | 100% | 0.008
| VariableUsageFinderFunctionTest | 1 | 0 | 0 | 0 | 100% | 0.001
| MethodNameDeclarationTest | 1 | 0 | 0 | 0 | 100% | 0.001
| MethodScopeTest | 3 | 0 | 0 | 0 | 100% | 0.003

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| NamingRulesTest | 1 | 0 | 0 | 0 | 100% | 0.266

### net.sourceforge.pmd.renderers

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| TextRendererTest | 5 | 0 | 0 | 0 | 100% | 0.003
| SummaryHTMLRendererTest | 5 | 0 | 0 | 0 | 100% | 0.007
| YAHTMLRendererTest | 5 | 0 | 0 | 0 | 100% | 0.023
| IDEAJRendererTest | 5 | 0 | 0 | 0 | 100% | 0.004
| XSLTRendererTest | 1 | 0 | 0 | 0 | 100% | 1.611
| CSVRendererTest | 5 | 0 | 0 | 0 | 100% | 0.01
| EmacsRendererTest | 5 | 0 | 0 | 0 | 100% | 0.026
| HTMLRendererTest | 5 | 0 | 0 | 0 | 100% | 0.008
| PapariTextRendererTest | 5 | 0 | 0 | 0 | 100% | 0.011
| VBHTMLRendererTest | 5 | 0 | 0 | 0 | 100% | 0.006
| TextPadRendererTest | 5 | 0 | 0 | 0 | 100% | 0.008
| XMLRendererTest | 5 | 0 | 0 | 0 | 100% | 0.038

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| UnnecessaryRulesTest | 1 | 0 | 0 | 0 | 100% | 0.527

### net.sourceforge.pmd.lang.ecmascript.ast

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| EcmascriptParserTest | 2 | 0 | 0 | 0 | 100% | 0.001
| SourceCodePositionerTest | 1 | 0 | 0 | 0 | 100% | 0

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| MigratingRulesTest | 1 | 0 | 0 | 0 | 100% | 0.255

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| BasicRulesTest | 1 | 0 | 0 | 0 | 100% | 0.059

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| StrictExceptionRulesTest | 1 | 0 | 0 | 0 | 100% | 0.233

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| UnusedCodeRulesTest | 1 | 0 | 0 | 0 | 100% | 0.138

### net.sourceforge.pmd.ast

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| ASTFormalParameterTest | 1 | 0 | 0 | 0 | 100% | 0.001
| ASTAssignmentOperatorTest | 3 | 0 | 0 | 0 | 100% | 0.017
| ASTLiteralTest | 7 | 0 | 0 | 0 | 100% | 0.024
| AccessNodeTest | 13 | 0 | 0 | 0 | 100% | 0.03
| ASTFieldDeclarationTest | 5 | 0 | 0 | 0 | 100% | 0.009
| ClassDeclTest | 5 | 0 | 0 | 0 | 100% | 0.008
| ASTMethodDeclarationTest | 1 | 0 | 0 | 0 | 100% | 0.001
| ASTThrowStatementTest | 2 | 0 | 0 | 0 | 100% | 0.003
| ASTImportDeclarationTest | 4 | 0 | 0 | 0 | 100% | 0.01
| ASTVariableDeclaratorIdTest | 3 | 0 | 0 | 0 | 100% | 0.004
| SimpleNodeTest | 21 | 0 | 0 | 0 | 100% | 0.126
| ASTBlockStatementTest | 2 | 0 | 0 | 0 | 100% | 0.002
| ASTAnnotationTest | 3 | 0 | 0 | 0 | 100% | 0.003
| EncodingTest | 0 | 0 | 0 | 0 | 0% | 0.009
| ParserCornersTest | 5 | 0 | 0 | 0 | 100% | 0.06
| FieldDeclTest | 7 | 0 | 0 | 0 | 100% | 0.018
| JDKVersionTest | 33 | 0 | 0 | 0 | 100% | 0.245
| MethodDeclTest | 8 | 0 | 0 | 0 | 100% | 0.011
| ASTBooleanLiteralTest | 2 | 0 | 0 | 0 | 100% | 0.068
| ASTPrimarySuffixTest | 2 | 0 | 0 | 0 | 100% | 0.003
| ASTInitializerTest | 1 | 0 | 0 | 0 | 100% | 0.002
| ASTLocalVariableDeclarationTest | 3 | 0 | 0 | 0 | 100% | 0.003
| ASTSwitchLabelTest | 2 | 0 | 0 | 0 | 100% | 0.003

### net.sourceforge.pmd.lang.ecmascript

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

### net.sourceforge.pmd.ant

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| FormatterTest | 1 | 0 | 0 | 0 | 100% | 0
| PMDTaskTest | 16 | 0 | 0 | 0 | 100% | 7.576

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| ImportsRulesTest | 1 | 0 | 0 | 0 | 100% | 0.223

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

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

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| BasicJsfRulesTest | 1 | 0 | 0 | 0 | 100% | 0.002

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| XPathRulesTest | 1 | 0 | 0 | 0 | 100% | 0.027

### net.sourceforge.pmd.util

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| StringUtilTest | 7 | 0 | 0 | 0 | 100% | 0.001
| CompoundListTest | 5 | 0 | 0 | 0 | 100% | 0.002
| DateTimeUtilTest | 1 | 0 | 0 | 0 | 100% | 0
| TypeMapTest | 5 | 0 | 0 | 0 | 100% | 0.033
| ApplierTest | 1 | 0 | 0 | 0 | 100% | 0

### net.sourceforge.pmd.lang.xml.rule

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| AbstractDomXmlRuleTest | 3 | 0 | 0 | 0 | 100% | 0.062
| AbstractXmlRuleTest | 1 | 0 | 0 | 0 | 100% | 0.003

### 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 | 1 | 0 | 0 | 0 | 100% | 0.13

### net.sourceforge.pmd.lang.ast.xpath

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

### net.sourceforge.pmd.typeresolution

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| ClassTypeResolverTest | 14 | 0 | 0 | 0 | 100% | 0.068
| PMDASMClassLoaderTest | 3 | 0 | 0 | 0 | 100% | 0.001

### net.sourceforge.pmd.testframework

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| SimpleAggregatorTst | 1 | 0 | 0 | 1 | 0% | 0.566
| SimpleAggregatorTst | 1 | 0 | 0 | 1 | 0% | 0.025
| SimpleAggregatorTst | 1 | 0 | 0 | 1 | 0% | 0.263

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| CloneRulesTest | 1 | 0 | 0 | 0 | 100% | 0.05

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| OptimizationsRulesTest | 1 | 0 | 0 | 0 | 100% | 0.524

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| LoggingJakartaCommonsRulesTest | 1 | 0 | 0 | 0 | 100% | 0.061

### net.sourceforge.pmd.jaxen

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| RegexpAcceptanceTest | 2 | 0 | 0 | 0 | 100% | 0.346
| MatchesFunctionTest | 2 | 0 | 0 | 0 | 100% | 0.007
| AttributeAxisIteratorTest | 1 | 0 | 0 | 0 | 100% | 0.002
| AttributeTest | 1 | 0 | 0 | 0 | 100% | 0
| DocumentNavigatorTest | 11 | 0 | 0 | 0 | 100% | 0.07

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| CommentRulesTest | 1 | 0 | 0 | 0 | 100% | 0.007
| AbstractCommentRuleTest | 1 | 0 | 0 | 0 | 100% | 0

### net.sourceforge.pmd.properties

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| CharacterPropertyTest | 6 | 0 | 0 | 0 | 100% | 0.002
| BooleanPropertyTest | 6 | 0 | 0 | 0 | 100% | 0.002
| DoublePropertyTest | 6 | 0 | 0 | 0 | 100% | 0.001
| PropertyAccessorTest | 5 | 0 | 0 | 1 | 80% | 0.001
| StringPropertyTest | 6 | 0 | 0 | 0 | 100% | 0.001
| IntegerPropertyTest | 6 | 0 | 0 | 0 | 100% | 0.003
| FloatPropertyTest | 6 | 0 | 0 | 0 | 100% | 0.013
| MethodPropertyTest | 8 | 0 | 0 | 0 | 100% | 0.004
| EnumeratedPropertyTest | 6 | 0 | 0 | 0 | 100% | 0.003
| TypePropertyTest | 6 | 0 | 0 | 0 | 100% | 0.002

### net.sourceforge.pmd.lang.java.rule

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| XPathRuleTest | 2 | 0 | 0 | 0 | 100% | 0.004

### net.sourceforge.pmd.lang.jsp.ast

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| JspPageStyleTest | 9 | 0 | 0 | 0 | 100% | 0.005
| OpenTagRegisterTest | 5 | 0 | 0 | 0 | 100% | 0
| JspDocStyleTest | 35 | 0 | 0 | 0 | 100% | 0.02
| XPathJspRuleTest | 1 | 0 | 0 | 0 | 100% | 0.012

### net.sourceforge.pmd.cli

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| CLITest | 4 | 0 | 0 | 0 | 100% | 0.915

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| BracesRulesTest | 1 | 0 | 0 | 0 | 100% | 0.033

### net.sourceforge.pmd.lang.xml

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| XmlParserOptionsTest | 4 | 0 | 0 | 0 | 100% | 0.003

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| AndroidRulesTest | 1 | 0 | 0 | 0 | 100% | 0.037

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| BracesRulesTest | 1 | 0 | 0 | 0 | 100% | 0.028

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| EmptyRulesTest | 1 | 0 | 0 | 0 | 100% | 0.253

### 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
--- | --- | --- | --- | --- | --- | --- | ---
| NPathComplexityTest | 2 | 0 | 0 | 0 | 100% | 0.006
| CyclomaticComplexityTest | 5 | 0 | 0 | 0 | 100% | 0.044
| CodesizeRulesTest | 1 | 0 | 0 | 0 | 100% | 0.117

### net.sourceforge.pmd.lang.dfa.report

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| ViolationNodeTest | 7 | 0 | 0 | 0 | 100% | 0.265

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| JunitRulesTest | 1 | 0 | 0 | 0 | 100% | 0.611

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| UnnecessaryRulesTest | 1 | 0 | 0 | 0 | 100% | 0.026

### net.sourceforge.pmd.stat

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| MetricTest | 7 | 0 | 0 | 0 | 100% | 0.003
| StatisticalRuleTest | 75 | 0 | 0 | 0 | 100% | 0.777

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| ControversialRulesTest | 1 | 0 | 0 | 0 | 100% | 0.272

### net.sourceforge.pmd.dfa

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| AcceptanceTest | 31 | 0 | 0 | 0 | 100% | 0.131
| DAAPathFinderTest | 1 | 0 | 0 | 0 | 100% | 0.058
| StructureTest | 1 | 0 | 0 | 0 | 100% | 0.003
| VariableAccessTest | 1 | 0 | 0 | 0 | 100% | 0.002
| DataFlowNodeTest | 5 | 0 | 0 | 0 | 100% | 0.002
| StatementAndBraceFinderTest | 6 | 0 | 0 | 0 | 100% | 0.007
| GeneralFiddlingTest | 1 | 0 | 0 | 0 | 100% | 0.003

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| FinalizersRulesTest | 1 | 0 | 0 | 0 | 100% | 0.043

### net.sourceforge.pmd

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| RuleSetFactoryTest | 39 | 0 | 0 | 0 | 100% | 3.145
| LanguageVersionDiscovererTest | 3 | 0 | 0 | 0 | 100% | 0.002
| RuleSetReferenceIdTest | 23 | 0 | 0 | 0 | 100% | 0.015
| FileSelectorTest | 3 | 0 | 0 | 0 | 100% | 0.005
| ExcludeLinesTest | 2 | 0 | 0 | 0 | 100% | 0.005
| LanguageVersionTest | 28 | 0 | 0 | 0 | 100% | 0.024
| ASTPackageDeclarationTest | 1 | 0 | 0 | 0 | 100% | 0
| ReportTest | 12 | 0 | 0 | 0 | 100% | 0.008
| AbstractRuleTest | 14 | 0 | 0 | 0 | 100% | 0.007
| RuleSetTest | 26 | 0 | 0 | 0 | 100% | 0.122
| RuleReferenceTest | 3 | 0 | 0 | 0 | 100% | 0.002
| ReadableDurationTest | 4 | 0 | 0 | 0 | 100% | 0.002
| ConfigurationTest | 17 | 0 | 0 | 0 | 100% | 0.046
| RuleViolationTest | 0 | 0 | 0 | 0 | 0% | 0.004
| SuppressWarningsTest | 17 | 0 | 0 | 0 | 100% | 0.178
| RuleSetWriterTest | 1 | 0 | 0 | 0 | 100% | 0.012
| RuleViolationComparatorTest | 1 | 0 | 0 | 0 | 100% | 0.001
| RuleContextTest | 5 | 0 | 0 | 0 | 100% | 0.003

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| JavabeansRulesTest | 1 | 0 | 0 | 0 | 100% | 0.04

### net.sourceforge.pmd.coverage

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| PMDCoverageTest | 2 | 0 | 0 | 0 | 100% | 19.024

### net.sourceforge.pmd.lang

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

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| LoggingJavaRulesTest | 1 | 0 | 0 | 0 | 100% | 0.039

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| CouplingRulesTest | 1 | 0 | 0 | 0 | 100% | 0.07

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| SunSecureRulesTest | 1 | 0 | 0 | 0 | 100% | 0.05

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| UnusedImportsTest | 1 | 0 | 0 | 0 | 100% | 0.018
| CloneMethodMustImplementCloneableTest | 1 | 0 | 0 | 0 | 100% | 0
| LooseCouplingTest | 1 | 0 | 0 | 0 | 100% | 0.014
| SignatureDeclareThrowsExceptionTest | 1 | 0 | 0 | 0 | 100% | 0.013

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| BasicRulesTest | 1 | 0 | 0 | 0 | 100% | 2.652

### xml.java-design.UseVarargs:method\u002C do not varargs as the signature is dictated by an interface\n\/\/ TODO Once this is implemented\u002C perhaps it should be optional? The compiler will technically let you use varargs.(net.sourceforge.pmd.testframework

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| SimpleAggregatorTst) | 1 | 0 | 0 | 1 | 0% | 2.284

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| J2EERulesTest | 1 | 0 | 0 | 0 | 100% | 0.104

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| BasicRulesTest | 1 | 0 | 0 | 0 | 100% | 0.063

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

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| UncommentedEmptyConstructorRuleTest | 3 | 0 | 0 | 0 | 100% | 0.077
| DesignRulesTest | 1 | 0 | 0 | 0 | 100% | 4.568
| ConfusingTernaryRuleTest | 1 | 0 | 0 | 0 | 100% | 0.033
| ConstructorCallsOverridableMethodTest | 1 | 0 | 0 | 0 | 100% | 0.104
| UncommentedEmptyMethodRuleTest | 1 | 0 | 0 | 0 | 100% | 0.029
| TooManyHttpFilterTest | 2 | 0 | 0 | 0 | 100% | 0.001

### net.sourceforge.pmd.cpd

| Class | Tests | Errors | Failures | Skipped | Success Rate | Time
--- | --- | --- | --- | --- | --- | --- | ---
| CPPTokenizerTest | 6 | 0 | 0 | 0 | 100% | 0.017
| EcmascriptTokenizerTest | 2 | 0 | 0 | 0 | 100% | 0.001
| LanguageFactoryTest | 1 | 0 | 0 | 0 | 100% | 0.003
| CPDTest | 3 | 0 | 0 | 0 | 100% | 0.035
| FortranTokenizerTest | 1 | 0 | 0 | 0 | 100% | 0.009
| FileReporterTest | 4 | 0 | 0 | 0 | 100% | 0.004
| XMLRendererTest | 4 | 0 | 0 | 0 | 100% | 0.016
| AnyTokenizerTest | 1 | 0 | 0 | 0 | 100% | 0.002
| CsTokenizerTest | 9 | 0 | 0 | 0 | 100% | 0.011
| JavaTokensTokenizerTest | 11 | 0 | 0 | 0 | 100% | 0.014
| RubyTokenizerTest | 1 | 0 | 0 | 0 | 100% | 0.001
| MatchTest | 2 | 0 | 0 | 0 | 100% | 0.001
| MatchAlgorithmTest | 2 | 0 | 0 | 0 | 100% | 0.01
| CPDCommandLineInterfaceTest | 1 | 0 | 0 | 0 | 100% | 0.006
| SourceCodeTest | 1 | 0 | 0 | 0 | 100% | 0.002
| TokenEntryTest | 1 | 0 | 0 | 0 | 100% | 0.002

## Test Cases

[Summary] [Package List] [Test Cases]

### TextRendererTest

| testError | 0
| testRenderer | 0.002
| testNullPassedIn | 0
| testRendererEmpty | 0
| testRendererMultiple | 0.001

### J2EERulesTest

| testAll | 0.104

### SummaryHTMLRendererTest

| testError | 0.002
| testRenderer | 0.002
| testNullPassedIn | 0.001
| testRendererEmpty | 0
| testRendererMultiple | 0.002

### RuleSetFactoryTest

| testXPath | 0.003
| testFacadesOffByDefault | 0.002
| testDFAFlag | 0.002
| testReferenceInternalToInternal | 0.003
| testReferenceInternalToInternalChain | 0.006
| testReferenceInternalToExternal | 0.008
| testReferenceInternalToExternalChain | 0.011
| testReferencePriority | 0.037
| testOverrideMessage | 0.004
| testOverrideMessageOneElem | 0.005
| testIncorrectExternalRef | 0.004
| testSetPriority | 0.004
| testLanguage | 0.003
| testIncorrectLanguage | 0.002
| testMinimumLanugageVersion | 0.003
| testIncorrectMinimumLanugageVersion | 0.01
| testMaximumLanugageVersion | 0
| testIncorrectMaximumLanugageVersion | 0
| testInvertedMinimumMaximumLanugageVersions | 0
| testDirectDeprecatedRule | 0.002
| testReferenceToDeprecatedRule | 0.009
| testRuleSetReferenceWithDeprecatedRule | 0.052
| testExternalReferences | 0.004
| testIncludeExcludePatterns | 0.002
| testAllPMDBuiltInRulesMeetConventions | 0.479
| testXmlSchema | 0.607
| testDtd | 0.326
| testReadWriteRoundTrip | 1.39
| testRuleSetFileName | 0.042
| testNoRuleSetFileName | 0.003
| testRefs | 0.014
| testExtendedReferences | 0.076
| testRuleSetNotFound | 0.003
| testCreateEmptyRuleSet | 0.003
| testSingleRule | 0.005
| testMultipleRules | 0.004
| testSingleRuleWithPriority | 0.005
| testProps | 0.005
| testExternalReferenceOverride | 0.007

### YAHTMLRendererTest

| testError | 0.018
| testRenderer | 0.002
| testNullPassedIn | 0.001
| testRendererEmpty | 0.001
| testRendererMultiple | 0.001

### SourceFileScopeTest

| testClassDeclAppears | 0
| testPackageIsEmptyString | 0.001
| testPackageNameFound | 0
| testNestedClasses | 0.001

### AcceptanceTest

| testInnerOuterClass | 0.001
| testFieldFinder | 0.001
| testDemo | 0.005
| testEnum | 0.002
| testClashingSymbols | 0.001
| testInitializer | 0
| testCatchBlocks | 0.001
| testEq | 0.001

### LanguageVersionDiscovererTest

| testJspFile | 0
| testJavaFileUsingDefaults | 0.002
| testJavaFileUsing15 | 0

### CPPTokenizerTest

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

### ParserOptionsTest

| testSuppressMarker | 0
| testEqualsHashcode | 0

### EcmascriptTokenizerTest

| test2 | 0
| test1 | 0

### RuleSetReferenceIdTest

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

### LanguageFactoryTest

| testSimple | 0.003

### JavabeansRulesTest

| testAll | 0.04

### RegexpAcceptanceTest

| testSimple | 0.345
| testAll | 0.001

### FileSelectorTest

| testUnwantedFile | 0
| testUnwantedJavaFile | 0
| testWantedFile | 0

### AcceptanceTest

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

### NPathComplexityTest

| testViolationMessage | 0.003
| testReturnValueComplexity | 0.003

### ASTFormalParameterTest

| testVarargs | 0

### TypeSetTest

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

### BasicRulesTest

| testAll | 0.059

### ExcludeLinesTest

| testAcceptance | 0.003
| testAlternateMarker | 0.002

### BracesRulesTest

| testAll | 0.028

### IDEAJRendererTest

| testError | 0.001
| testRenderer | 0.002
| testNullPassedIn | 0
| testRendererEmpty | 0
| testRendererMultiple | 0.001

### ContinuationReaderTest

| testHappyPath | 0

### ClassScopeTest

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

### CharacterPropertyTest

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

### LanguageVersionTest

| testGetLanguageVersionForTerseName[0] | 0.001
| testFindVersionsForLanguageTerseName[0] | 0.002
| testGetLanguageVersionForTerseName[1] | 0.001
| testFindVersionsForLanguageTerseName[1] | 0.001
| testGetLanguageVersionForTerseName[2] | 0
| testFindVersionsForLanguageTerseName[2] | 0.001
| testGetLanguageVersionForTerseName[3] | 0.001
| testFindVersionsForLanguageTerseName[3] | 0
| testGetLanguageVersionForTerseName[4] | 0
| testFindVersionsForLanguageTerseName[4] | 0.001
| testGetLanguageVersionForTerseName[5] | 0.001
| testFindVersionsForLanguageTerseName[5] | 0.004
| testGetLanguageVersionForTerseName[6] | 0
| testFindVersionsForLanguageTerseName[6] | 0.001
| testGetLanguageVersionForTerseName[7] | 0.001
| testFindVersionsForLanguageTerseName[7] | 0.001
| testGetLanguageVersionForTerseName[8] | 0.001
| testFindVersionsForLanguageTerseName[8] | 0
| testGetLanguageVersionForTerseName[9] | 0
| testFindVersionsForLanguageTerseName[9] | 0
| testGetLanguageVersionForTerseName[10] | 0.001
| testFindVersionsForLanguageTerseName[10] | 0.001
| testGetLanguageVersionForTerseName[11] | 0.001
| testFindVersionsForLanguageTerseName[11] | 0.001
| testGetLanguageVersionForTerseName[12] | 0.001
| testFindVersionsForLanguageTerseName[12] | 0.001
| testGetLanguageVersionForTerseName[13] | 0.001
| testFindVersionsForLanguageTerseName[13] | 0

### ScopeCreationVisitorTest

| testScopesAreCreated | 0

### StringUtilTest

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

### ASTAssignmentOperatorTest

| testSimpleAssignmentRecognized | 0.009
| testCompoundAssignmentPlusRecognized | 0.002
| testCompoundAssignmentMultRecognized | 0.006

### DAAPathFinderTest

| testTwoUpdateDefs | 0.058

### XSLTRendererTest

| testDefaultStylesheet | 1.611

### CompoundListTest

| testEmptyBadRemove | 0.001
| testHappyPath | 0
| testHappyPathRemove | 0
| testEmpty | 0.001
| testEmptyBadNext | 0

### BooleanPropertyTest

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

### XPathRulesTest

| testAll | 0.027

### ASTLiteralTest

| testIsStringLiteral | 0.002
| testIsNotStringLiteral | 0.003
| testIsIntIntLiteral | 0.002
| testIsIntLongLiteral | 0.003
| testIsFloatFloatLiteral | 0.01
| testIsFloatDoubleLiteral | 0.002
| testIsCharLiteral | 0.002

### UncommentedEmptyConstructorRuleTest

| testIgnoredConstructorInvocation | 0.01
| testDefault | 0.062
| testAll | 0.005

### DateTimeUtilTest

| testConversions | 0

### CPDTest

| testFileSectionWithBrokenSymlinks | 0.027
| testFileAddedAsSymlinkAndReal | 0.003
| testFileAddedWithRelativePath | 0.005

### UnnecessaryRulesTest

| testAll | 0.026

### FortranTokenizerTest

| tokenizeTest | 0.009

### DesignRulesTest

| testAll | 2.284

### SimpleAggregatorTst)

| xml.java-design.UseVarargs:method\u002C do not varargs as the signature is dictated by an interface\n\/\/ TODO Once this is implemented\u002C perhaps it should be optional? The compiler will technically let you use varargs. + - [ Detail ] | 2.284
| skipped |

### StructureTest

| testAddResultsinDFANodeContainingAddedNode | 0.003

### CSVRendererTest

| testError | 0.002
| testRenderer | 0.001
| testNullPassedIn | 0.001
| testRendererEmpty | 0.004
| testRendererMultiple | 0.002

### ImageFinderFunctionTest

| testSeveralImages | 0.001
| testSingleImage | 0

### LoggingJakartaCommonsRulesTest

| testAll | 0.061

### MatchesFunctionTest

| testMatch | 0
| testNoMatch | 0

### ASTPackageDeclarationTest

| testPackageName | 0

### FinalizersRulesTest

| testAll | 0.043

### AccessNodeTest

| testPublic | 0.003
| testPrivate | 0.002
| testProtected | 0.002
| testFinal | 0.002
| testSynchronized | 0.003
| testAbstract | 0.003
| testNative | 0.002
| testStrict | 0.002
| testModifiersOnClassDecl | 0.003
| testStatic | 0.002
| testVolatile | 0.002
| testTransient | 0.003
| testPackagePrivate | 0.001

### AvoidDuplicateLiteralsRuleTest

| testAll | 0.04
| testStringParserEmptyString | 0.001
| testStringParserSimple | 0
| testStringParserEscapedChar | 0
| testStringParserEscapedEscapedChar | 0

### ControversialRulesTest

| testAll | 0.272

### ReportTest

| testBasic | 0.001
| testMetric0 | 0
| testMetric1 | 0
| testExclusionsInReportWithRuleViolationSuppressRegex | 0.001
| testExclusionsInReportWithRuleViolationSuppressXPath | 0.001
| testExclusionsInReportWithAnnotations | 0.001
| testExclusionsInReportWithNOPMD | 0.001
| testSortedReport_File | 0
| testSortedReport_Line | 0.001
| testListener | 0.001
| testSummary | 0.001
| testTreeIterator | 0

### UnusedImportsTest

| testAll | 0.018

### TypeMapTest

| testContainsClassOfQ | 0
| testContainsString | 0
| testSize | 0
| testTypeFor | 0
| testAddClassOfQ | 0.033

### DoublePropertyTest

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

### ApplierTest

| testSimple | 0

### FormatterTest

| testNull | 0

### ASTFieldDeclarationTest

| testGetVariableName | 0.002
| testIsArray | 0.002
| testMultiDimensionalArray | 0.002
| testIsSyntacticallyPublic | 0.002
| testWithEnum | 0.001

### CyclomaticComplexityTest

| testConstructor | 0.004
| testNastyComplicatedMethod | 0.005
| testLessComplicatedThanReportLevel | 0.003
| testRemainingTestCases | 0.028
| testOneMethod | 0.004

### EmptyRulesTest

| testAll | 0.253

### AttributeAxisIteratorTest

| testRemove | 0.002

### ConfusingTernaryRuleTest

| testAll | 0.033

### VariableAccessTest

| testGetVariableName | 0

### EcmascriptParserTest

| testArrayAccess | 0.001
| testLineNumbers | 0

### GlobalScopeTest

| testEnums | 0.001
| testClassDeclAppears | 0.001

### ClassDeclTest

| testPublic | 0.002
| testFinal | 0.001
| testAbstract | 0.001
| testStrict | 0.002
| testPublicFinal | 0.002

### BasicJsfRulesTest

| testAll | 0.002

### ASTMethodDeclarationTest

| testGetVariableName | 0

### MetricTest

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

### EmacsRendererTest

| testError | 0.011
| testRenderer | 0.003
| testNullPassedIn | 0.001
| testRendererEmpty | 0.001
| testRendererMultiple | 0.01

### AttributeTest

| testConstructor | 0

### FileReporterTest

| testEmptyReport | 0.002
| testReport | 0.001
| testInvalidFile | 0.001
| testCreation | 0

### DataFlowNodeTest

| testRemovePathToChild | 0
| testRemovePathWithNonChild | 0
| testReverseParentPathsTo | 0.001
| testSetType | 0
| testAddPathToChild | 0.001

### ClassTypeResolverTest

| acceptanceTest | 0.004
| testExtraTopLevelClass | 0.002
| testInnerClass | 0.003
| testAnonymousInnerClass | 0.002
| testUnaryNumericPromotion | 0.009
| testClassNameExists | 0.001
| testBinaryNumericPromotion | 0.012
| testBinaryStringPromotion | 0.01
| testUnaryLogicalOperators | 0.004
| testBinaryLogicalOperators | 0.003
| testUnaryNumericOperators | 0.005
| testBinaryNumericOperators | 0.005
| testAssignmentOperators | 0.004
| testLiterals | 0.004

### CLITest

| minimalArgs | 0.447
| usingDebug | 0.231
| changeJavaVersion | 0.187
| useEcmaScript | 0.05

### ASTThrowStatementTest

| testGetFirstASTNameImageNull | 0.002
| testGetFirstASTNameImageNew | 0.001

### SimpleAggregatorTst

| xml.java-strings.ConsecutiveLiteralAppends:43\u002C Using variable char array + - [ Detail ] | 0.566
| skipped |

### StringsRulesTest

| testAll | 0.566

### VariableNameDeclarationTest

| testConstructor | 0.001
| testIsArray | 0
| testExceptionBlkParam | 0.001
| testPrimitiveType | 0.013
| testArrayIsReferenceType | 0
| testPrimitiveTypeImage | 0
| testRefTypeImage | 0.001
| testParamTypeImage | 0

### ASTImportDeclarationTest

| testStaticImportFailsWithJDK14 | 0.002
| testImportOnDemand | 0.006
| testGetImportedNameNode | 0.001
| testStaticImport | 0.001

### AbstractDomXmlRuleTest

| testVisit | 0.058
| dtdIsNotLookedUp | 0.002
| xsdIsNotLookedUp | 0.002

### PropertyAccessorTest

| testStrings | 0
| testIntegers | 0
| testBooleans | 0
| testFloats + - [ Detail ] | 0
| skipped |
| testAll | 0.001

### StringPropertyTest

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

### XPathRuleTest

| testPluginname | 0.002
| testVariables | 0.002

### CloneMethodMustImplementCloneableTest

| testAll | 0

### CodesizeRulesTest

| testAll | 0.117

### JunitRulesTest

| testAll | 0.611

### IntegerPropertyTest

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

### ASTVariableDeclaratorIdTest

| testIsExceptionBlockParameter | 0.001
| testAnnotations | 0.002
| testTypeNameNode | 0.001

### BracesRulesTest

| testAll | 0.033

### StrictExceptionRulesTest

| testAll | 0.233

### DocumentNavigatorTest

| testChildAxisIterator | 0.014
| testParentAxisIterator | 0.006
| testParentAxisIterator2 | 0.006
| testDescendantAxisIterator | 0.006
| testDescendantAxisIterator2 | 0.005
| testFollowingSiblingAxisIterator | 0.005
| testFollowingSiblingAxisIterator2 | 0.004
| testPrecedingSiblingAxisIterator | 0.007
| testPrecedingSiblingAxisIterator2 | 0.004
| testXPath | 0.006
| testXPath2 | 0.007

### MigratingRulesTest

| testAll | 0.255

### XMLRendererTest

| testWithNoDuplication | 0.005
| testWithOneDuplication | 0.005
| testRendererEncodedPath | 0.002
| testRenderWithMultipleMatch | 0.004

### AnyTokenizerTest

| testMultiLineMacros | 0.002

### SimpleAggregatorTst

| xml.java-sunsecure.MethodReturnsInternalArray:3220206: False positive using a ternary operator + - [ Detail ] | 0.025
| skipped |

### SunSecureRulesTest

| testAll | 0.025

### SimpleNodeTest

| testMethodDiffLines | 0.004
| testMethodSameLine | 0.003
| testNoLookahead | 0.003
| testHasExplicitExtends | 0.002
| testNoExplicitExtends | 0.003
| testHasExplicitImplements | 0.004
| testNoExplicitImplements | 0.003
| testColumnsOnQualifiedName | 0.004
| testLineNumbersForNameSplitOverTwoLines | 0.003
| testLineNumbersAreSetOnAllSiblings | 0.016
| testFindDescendantsOfType | 0.003
| testFindDescendantsOfTypeMultiple | 0.011
| testFindDescendantsOfTypeRecurse | 0.003
| testGetFirstChild | 0.002
| testGetFirstChildNested | 0.003
| testGetFirstChildNestedDeeper | 0.019
| testParentMethods | 0.012
| testContainsNoInnerWithAnonInner | 0.004
| testContainsChildOfType | 0.015
| testXPathNodeSelect | 0.006
| testUserData | 0.003

### AttributeAxisIteratorTest

| testAttributeAxisIterator | 0

### AbstractRuleTest

| testEquals1 | 0.001
| testEquals2 | 0.001
| testEquals3 | 0
| testEquals4 | 0
| testEquals5 | 0.001
| testEquals6 | 0.001
| testEquals7 | 0
| testEquals8 | 0
| testEquals9 | 0
| testEquals10 | 0
| testCreateRV | 0.001
| testCreateRV2 | 0
| testRuleWithVariableInMessage | 0.001
| testRuleSuppress | 0.001

### FloatPropertyTest

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

### CsTokenizerTest

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

### LoggingJavaRulesTest

| testAll | 0.039

### RuleSetTest

| testIncludesRuleWithDFA | 0.004
| testAccessors | 0.003
| testGetRuleByName | 0.003
| testGetRuleByName2 | 0.004
| testAddRuleSet | 0.002
| testAddRuleSetByReferenceBad | 0.003
| testAddRuleSetByReferenceAllRule | 0.003
| testAddRuleSetByReferenceSingleRule | 0.003
| testApply0Rules | 0.003
| testEquals1 | 0.003
| testEquals2 | 0.014
| testEquals3 | 0.003
| testEquals4 | 0.003
| testEquals5 | 0.003
| testEquals6 | 0.002
| testLanguageApplies | 0.003
| testAddExcludePattern | 0.003
| testAddExcludePatterns | 0.003
| testSetExcludePatterns | 0.003
| testAddIncludePattern | 0.003
| testAddIncludePatterns | 0.003
| testSetIncludePatterns | 0.011
| testNoDFA | 0.003
| testRuleList | 0.008
| testIncludeExcludeApplies | 0.004
| testIncludeExcludeMultipleRuleSetWithRuleChainApplies | 0.022

### CommentRulesTest

| testAll | 0.007

### LooseCouplingTest

| testAll | 0.014

### JavaTokensTokenizerTest

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

### NameOccurrencesTest

| testSuper | 0.001
| testThis | 0.001
| testNameLinkage | 0.013
| testSimpleVariableOccurrence | 0.002
| testQualifiedOccurrence | 0.001
| testIsSelfAssignment | 0.002
| testEnumStaticUsage | 0.001

### MethodPropertyTest

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

### RubyTokenizerTest

| tokenizeTest | 0.001

### UnusedCodeRulesTest

| testAll | 0.138

### JspPageStyleTest

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

### MatchTest

| testSimple | 0
| testCompareTo | 0.001

### RuleReferenceTest

| testOverride | 0.001
| testNotOverride | 0.001
| testRuleSetReference | 0

### OpenTagRegisterTest

| interleavedTags | 0
| openedIsolatedTag | 0
| testSimpleNesting | 0
| doubleNesting | 0
| unopenedTags | 0

### MatchAlgorithmTest

| testSimple | 0.009
| testIgnore | 0.001

### EnumeratedPropertyTest

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

### ImportsRulesTest

| testAll | 0.223

### XmlParserOptionsTest

| testConstructor | 0.001
| testSetters | 0.001
| testEqualsHashcode | 0.001
| testDefaults | 0

### ReadableDurationTest

| test[0] | 0.001
| test[1] | 0
| test[2] | 0
| test[3] | 0.001

### MyTestCase

| net.sourceforge.pmd.lang.java.rule.typeresolution.xml.MyTestCase + - [ Detail ] | 0.001
| skipped |

### HTMLRendererTest

| testError | 0.002
| testRenderer | 0.002
| testNullPassedIn | 0.001
| testRendererEmpty | 0.001
| testRendererMultiple | 0.002

### ConstructorCallsOverridableMethodTest

| testAll | 0.104

### BasicRulesTest

| testAll | 0.063

### ASTBlockStatementTest

| testIsAllocation | 0
| testIsAllocation2 | 0

### NamingRulesTest

| testAll | 0.266

### RegexStringFilterTest

| testFilterAbsoluteWithExtension | 0
| testFilterAbsoluteWithoutExtension | 0
| testFilterRelativeWithExtension | 0.001
| testFilterRelativeWithoutExtension | 0
| testEndsWith | 0.001

### JspDocStyleTest

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

### PMDASMClassLoaderTest

| testLoadClassWithImportOnDemand | 0
| testClassWithImportInnerOnDemand | 0
| testCachingOfNotFoundClasses | 0.001

### EcmascriptParserOptionsTest

| testConstructor | 0
| testSetters | 0
| testEqualsHashcode | 0
| testDefaults | 0

### SignatureDeclareThrowsExceptionTest

| testAll | 0.013

### LocalScopeTest

| testNameWithThisOrSuperIsNotFlaggedAsUnused | 0.003
| testQualifiedNameOccurrence | 0.004
| testNameWithSuperIsNotFlaggedAsUnused | 0
| testLocalVariableDeclarationFound | 0
| testPostfixUsageIsRecorded | 0
| testLocalVariableTypesAreRecorded | 0
| testMethodArgumentTypesAreRecorded | 0.001
| testgetEnclosingMethodScope | 0

### BasicRulesTest

| testAll | 0.13

### VariableUsageFinderFunctionTest

| testLookingForUsed | 0.001

### ConfigurationTest

| testClassLoader | 0.005
| testThreads | 0.002
| testLanguageVersionDiscoverer | 0.003
| testRuleSets | 0.002
| testMinimumPriority | 0.002
| testSourceEncoding | 0.002
| testInputPaths | 0.002
| testReportShortNames | 0.002
| testReportFormat | 0.003
| testCreateRenderer | 0.01
| testReportFile | 0.002
| testShowSuppressedViolations | 0.002
| testReportProperties | 0.002
| testDebug | 0.002
| testStressTest | 0.001
| testBenchmark | 0.002
| testSuppressMarker | 0.002

### SimpleAggregatorTst

| xml.java-unnecessary.UselessOverridingMethod:False +: Overriding method merely calls super (see bug 1415525) + - [ Detail ] | 0.263
| skipped |

### UnnecessaryRulesTest

| testAll | 0.264

### TypePropertyTest

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

### ASTAnnotationTest

| testAnnotationSucceedsWithDefaultMode | 0.001
| testAnnotationFailsWithJDK14 | 0.001
| testAnnotationSucceedsWithJDK15 | 0.001

### CPDCommandLineInterfaceTest

| testIgnoreIdentifiers | 0.006

### CouplingRulesTest

| testAll | 0.07

### MethodNameDeclarationTest

| testEquality | 0.001

### ParserCornersTest

| testInnerOuterClass | 0.003
| testGetFirstASTNameImageNull | 0.002
| testCastLookaheadProblem | 0.002
| testGenericsProblem | 0.003
| testParsersCases | 0.05

### MethodScopeTest

| testMethodParameterOccurrenceRecorded | 0.001
| testMethodName | 0.001
| testGenerics | 0.001

### FieldDeclTest

| testPublic | 0.002
| testPrivate | 0.002
| testProtected | 0.003
| testFinal | 0.002
| testStatic | 0.002
| testVolatile | 0.005
| testTransient | 0.002

### SourceCodeTest

| testSimple | 0

### StatementAndBraceFinderTest

| testIfStmtHasCorrectTypes | 0
| testStatementExpressionParentChildLinks | 0
| testVariableDeclaratorParentChildLinks | 0.002
| testWhileStmtHasCorrectTypes | 0.002
| testForStmtHasCorrectTypes | 0.003
| testOnlyWorksForMethodsAndConstructors | 0

### PMDCoverageTest

| testPmdOptions | 2.187
| testResourceFileCommands | 16.837

### GeneralFiddlingTest

| test1 | 0.003

### SuppressWarningsTest

| testSpecificSuppressionValue1 | 0.105
| testSpecificSuppressionValue2 | 0.004
| testSpecificSuppressionValue3 | 0.004
| testSpecificSuppressionMulitpleValues1 | 0.004
| testSpecificSuppressionMulitpleValues2 | 0.004
| testNoSuppressionBlank | 0.004
| testNoSuppressionSomethingElseS | 0.004
| testSuppressAll | 0.005
| testSpecificSuppressionAtTopLevel | 0.004
| testClassLevelSuppression | 0.005
| testInheritedSuppression | 0.004
| testMethodLevelSuppression | 0.004
| testConstructorLevelSuppression | 0.005
| testFieldLevelSuppression | 0.007
| testParameterLevelSuppression | 0.006
| testLocalVariableLevelSuppression | 0.005
| testSpecificSuppression | 0.004

### JDKVersionTest

| testEnumAsKeywordShouldFailWith14 | 0.006
| testEnumAsIdentifierShouldPassWith14 | 0.009
| testEnumAsKeywordShouldPassWith15 | 0.006
| testEnumAsIdentifierShouldFailWith15 | 0.006
| testAssertAsKeywordVariantsSucceedWith1_4 | 0.008
| testAssertAsVariableDeclIdentifierFailsWith1_4 | 0.005
| testAssertAsMethodNameIdentifierFailsWith1_4 | 0.006
| testAssertAsIdentifierSucceedsWith1_3 | 0.007
| testAssertAsKeywordFailsWith1_3 | 0.007
| testVarargsShouldPassWith15 | 0.006
| testVarargsShouldFailWith14 | 0.005
| testJDK15ForLoopSyntaxShouldPassWith15 | 0.006
| testJDK15ForLoopSyntaxWithModifiers | 0.006
| testJDK15ForLoopShouldFailWith14 | 0.006
| testJDK15GenericsSyntaxShouldPassWith15 | 0.021
| testVariousParserBugs | 0.011
| testNestedClassInMethodBug | 0.006
| testGenericsInMethodCall | 0.006
| testGenericINAnnotation | 0.006
| testGenericReturnType | 0.006
| testMultipleGenerics | 0.006
| testAnnotatedParams | 0.019
| testAnnotatedLocals | 0.005
| testAssertAsIdentifierSucceedsWith1_3_test2 | 0.005
| testBinaryAndUnderscoresInNumericalLiterals | 0.016
| testStringInSwitch | 0.007
| testGenericDiamond | 0.006
| testTryWithResources | 0.005
| testTryWithResourcesSemi | 0.007
| testTryWithResourcesMulti | 0.006
| testTryWithResourcesWithAnnotations | 0.006
| testMulticatch | 0.006
| testMulticatchWithAnnotations | 0.006

### RuleSetWriterTest

| testWrite | 0.012

### AbstractXmlRuleTest

| testVisit | 0.003

### ViolationNodeTest

| testEqualsNodeWithTwoEqualViolations | 0.259
| testEqualsNodeWithTwoDifferentViolationsDifferentFilename | 0.001
| testEqualsNodeWithTwoDifferentViolationsDifferentBeginLine | 0.001
| testEqualsNodeWithTwoDifferentViolationsDifferentEndLine | 0.001
| testEqualsNodeWithTwoDifferentViolationsDifferentBeginColumn | 0.001
| testEqualsNodeWithTwoDifferentViolationsDifferentEndColumn | 0.001
| testEqualsNodeWithTwoDifferentViolationsDifferentVariableName | 0.001

### MethodDeclTest

| testPublic | 0.003
| testPrivate | 0.002
| testProtected | 0.001
| testFinal | 0.001
| testSynchronized | 0.001
| testAbstract | 0.001
| testNative | 0.001
| testStrict | 0.001

### StatisticalRuleTest

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

### BasicRulesTest

| testAll | 2.652

### PapariTextRendererTest

| testError | 0.004
| testRenderer | 0.003
| testNullPassedIn | 0.001
| testRendererEmpty | 0.001
| testRendererMultiple | 0.002

### ASTBooleanLiteralTest

| testTrue | 0.066
| testFalse | 0.002

### RuleViolationComparatorTest

| testComparator | 0.001

### AbstractCommentRuleTest

| testFilteredCommentIn | 0

### ASTPrimarySuffixTest

| testArrayDereference | 0.002
| testArguments | 0.001

### PMDTaskTest

| testClasspath | 0.407
| testBasic | 0.154
| testNoFormattersValidation | 1.323
| testFormatterWithNoToFileAttribute | 0.132
| testNoRuleSets | 0.126
| testNestedRuleset | 0.874
| testFormatterWithProperties | 0.706
| testAbstractNames | 0.423
| testAbstractNamesInNestedRuleset | 0.627
| testCommaInRulesetfiles | 0.461
| testRelativeRulesets | 0.641
| testRelativeRulesetsInRulesetfiles | 0.499
| testInvalidLanguageVersion | 0.108
| testExplicitRuleInRuleSet | 0.26
| testEcmascript | 0.543
| testXML | 0.292

### TokenEntryTest

| testSimple | 0

### OptimizationsRulesTest

| testAll | 0.524

### VBHTMLRendererTest

| testError | 0.001
| testRenderer | 0.001
| testNullPassedIn | 0.001
| testRendererEmpty | 0.001
| testRendererMultiple | 0.002

### ASTInitializerTest

| testDontCrashOnBlockStatement | 0.002

### TextPadRendererTest

| testError | 0.001
| testRenderer | 0.002
| testNullPassedIn | 0
| testRendererEmpty | 0
| testRendererMultiple | 0.005

### AndroidRulesTest

| testAll | 0.037

### UncommentedEmptyMethodRuleTest

| testAll | 0.029

### XPathJspRuleTest

| testExpressionMatching | 0.012

### SourceCodePositionerTest

| testLineNumberFromOffset | 0

### CloneRulesTest

| testAll | 0.05

### ASTLocalVariableDeclarationTest

| testSingleDimArray | 0.001
| testMultDimArray | 0.001
| testMultDimArraySplitBraces | 0.001

### ASTSwitchLabelTest

| testDefaultOff | 0.002
| testDefaultSet | 0.001

### XMLRendererTest

| testEmptyReport | 0.007
| testErrorReport | 0.004
| testSingleReport | 0.01
| testDoubleReport | 0.011
| testTwoFiles | 0.006

### TooManyHttpFilterTest

| testDefault | 0
| testAll | 0

### RuleContextTest

| testReport | 0
| testSourceCodeFilename | 0.001
| testSourceCodeFile | 0
| testAttributes | 0.001
| testSharedAttributes | 0.001

## Failure Details

[Summary] [Package List] [Test Cases]

| xml.java-design.UseVarargs:method\u002C do not varargs as the signature is dictated by an interface\n\/\/ TODO Once this is implemented\u002C perhaps it should be optional? The compiler will technically let you use varargs.
| skipped: skipped
| xml.java-strings.ConsecutiveLiteralAppends:43\u002C Using variable char array
| skipped: skipped
| testFloats
| skipped: skipped
| xml.java-sunsecure.MethodReturnsInternalArray:3220206: False positive using a ternary operator
| skipped: skipped
| net.sourceforge.pmd.lang.java.rule.typeresolution.xml.MyTestCase
| skipped: skipped
| xml.java-unnecessary.UselessOverridingMethod:False +: Overriding method merely calls super (see bug 1415525)
| skipped: skipped