PMD 6.1.0 released
25 February 2018
25-February-2018 - 6.1.0
The PMD team is pleased to announce PMD 6.1.0.
This is a minor release.
Table Of Contents
New and noteworthy
The Designer now supports configuring properties for XPath based rule development.
The Designer is still under development and any feedback is welcome.
You can start the designer via
run.sh designer or
- #569: [core] XPath support requires specific toString implementations
- #795: [cpd] java.lang.OutOfMemoryError
- #848: [doc] Test failures when building pmd-doc under Windows
- #872: [core] NullPointerException at FileDataSource.glomName()
- #854: [ci] Use Java9 for building PMD
- #791: [doc] Documentation site reorganisation
- #891: [doc] Apex @SuppressWarnings should use single quotes instead of double quotes
- #909: [doc] Please add new PMD Eclipse Plugin to tool integration section
- #825: [java] Excessive*Length ignores too much
- #888: [java] ParseException occurs with valid ‘<>’ in Java 1.8 mode
- #920: [java] Update valid identifiers in grammar
- #784: [java] ForLoopCanBeForeach false-positive
- #925: [java] UnusedImports false positive for static import
- #855: [java] ImmutableField false-positive with lambdas
- #877: [java] CommentRequired valid rule configuration causes PMD error
- #885: [java] CompareObjectsWithEqualsRule trigger by enum1 != enum2
- #541: [java] ConsecutiveLiteralAppends with types other than string
- #853: [scala] Upgrade scala version to support Java 9
- #739: [xml] IllegalAccessException when accessing attribute using Saxon on JRE 9
Changes to the Node interface
getXPathNodeName is added to the
Node interface, which removes the
use of the
toString of a node to get its XPath element name (see #569).
A default implementation is provided in
AbstractNode, to stay compatible
with existing implementors.
toString method of a Node is not changed for the time being, and still produces
the name of the XPath node. That behaviour may however change in future major releases,
e.g. to produce a more useful message for debugging.
Changes to CPD renderers
net.sourceforge.pmd.cpd.Renderer has been deprecated. A new interface
has been introduced to replace it. The main difference is that the new interface is meant to render directly to a
rather than to a String. This allows to greatly reduce the memory footprint of CPD, as on large projects, with many duplications,
it was causing
OutOfMemoryErrors (see #795).
net.sourceforge.pmd.cpd.FileReporter has also been deprecated as part of this change, as it’s no longer needed.