PMD 6.0.1 released
21 January 2018
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
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. category/xml/errorprone.xml
).
You can find the information about available rules in the generated rule documentation, available
at https://pmd.github.io/6.0.1/.
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.
Fixed Issues
- all
- #842: [core] Use correct java bootclasspath for compiling
- apex-errorprone
- #792: [apex] AvoidDirectAccessTriggerMap incorrectly detects array access in classes
- apex-security
- #788: [apex] Method chaining breaks ApexCRUDViolation
- doc
- #782: [doc] Wrong information in the Release Notes about the Security ruleset
- #794: [doc] Broken documentation links for 6.0.0
- java
- #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
- java-bestpractices
- #783: [java] GuardLogStatement regression
- #800: [java] ForLoopCanBeForeach NPE when looping on
this
object
- java-codestyle
- #817: [java] UnnecessaryModifierRule crashes on valid code
- java-design
- #785: [java] NPE in DataClass rule
- #812: [java] Exception applying rule DataClass
- #827: [java] GodClass crashes with java.lang.NullPointerException
- java-performance
- #841: [java] InsufficientStringBufferDeclaration NumberFormatException
- java-typeresolution
- #866: [java] rulesets/java/typeresolution.xml lists non-existent rules
API Changes
- The constant
net.sourceforge.pmd.PMD.VERSION
has been deprecated and will be removed with PMD 7.0.0.
Please use net.sourceforge.pmd.PMDVersion.VERSION
instead.
External Contributions