PMD 6.0.1 released
21-January-2018 - 6.0.1
The PMD team is pleased to announce PMD 6.0.1.
This is a bug fixing release.
Table Of Contents
Additional information about the new introduced rule categories
With the release of PMD 6.0.0, all rules have been sorted into one of the following eight categories:
- Best Practices: These are rules which enforce generally accepted best practices.
- Code Style: These rules enforce a specific coding style.
- Design: Rules that help you discover design issues.
- Documentation: These rules are related to code documentation.
- Error Prone: Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
- Multithreading: These are rules that flag issues when dealing with multiple threads of execution.
- Performance: Rules that flag suboptimal code.
- Security: Rules that flag potential security flaws.
Please note, that not every category in every language may have a rule. There might be categories with no
rules at all, such as
category/java/security.xml, which has currently no rules.
There are even languages, which only have rules of one category (e.g.
You can find the information about available rules in the generated rule documentation, available
In order to help migrate to the new category scheme, the new name for the old, deprecated rule names will
be logged as a warning. See PR #865. Please note, that the deprecated
rule names will keep working throughout PMD 6. You can upgrade to PMD 6 without the immediate need
to migrate your current ruleset. That backwards compatibility will be maintained until PMD 7.0.0 is released.
- #842: [core] Use correct java bootclasspath for compiling
- #792: [apex] AvoidDirectAccessTriggerMap incorrectly detects array access in classes
- #788: [apex] Method chaining breaks ApexCRUDViolation
- #782: [doc] Wrong information in the Release Notes about the Security ruleset
- #794: [doc] Broken documentation links for 6.0.0
- #793: [java] Parser error with private method in nested classes in interfaces
- #814: [java] UnsupportedClassVersionError is failure instead of a warning
- #831: [java] StackOverflow in JavaTypeDefinitionSimple.toString
- #783: [java] GuardLogStatement regression
- #800: [java] ForLoopCanBeForeach NPE when looping on
- #817: [java] UnnecessaryModifierRule crashes on valid code
- #785: [java] NPE in DataClass rule
- #812: [java] Exception applying rule DataClass
- #827: [java] GodClass crashes with java.lang.NullPointerException
- #841: [java] InsufficientStringBufferDeclaration NumberFormatException
- #866: [java] rulesets/java/typeresolution.xml lists non-existent rules
- The constant
net.sourceforge.pmd.PMD.VERSION has been deprecated and will be removed with PMD 7.0.0.