PMD 6.1.0 released PMD Source Code Analyzer Home Documentation Bugs About News Downloads Support Plugins 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 Designer UI Fixed Issues API Changes * Changes to the Node interface * Changes to CPD renderers External Contributions New and noteworthy Designer UI 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 designer.bat. Fixed Issues all #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 doc #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 java #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 java-bestpractices #784: [java] ForLoopCanBeForeach false-positive #925: [java] UnusedImports false positive for static import java-design #855: [java] ImmutableField false-positive with lambdas java-documentation #877: [java] CommentRequired valid rule configuration causes PMD error java-errorprone #885: [java] CompareObjectsWithEqualsRule trigger by enum1 != enum2 java-performance #541: [java] ConsecutiveLiteralAppends with types other than string scala #853: [scala] Upgrade scala version to support Java 9 xml #739: [xml] IllegalAccessException when accessing attribute using Saxon on JRE 9 API Changes Changes to the Node interface The method 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. The 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 The interface net.sourceforge.pmd.cpd.Renderer has been deprecated. A new interface net.sourceforge.pmd.cpd.renderer.CPDRenderer has been introduced to replace it. The main difference is that the new interface is meant to render directly to a java.io.Writer 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. External Contributions #790: [java] Added some comments for JDK 9 - Tobias Weimer #803: [doc] Added SpotBugs as successor of FindBugs - Tobias Weimer #828: [core] Add operations to manipulate a document - Gonzalo Ibars Ingman #830: [java] UseArraysAsList: Description added - Tobias Weimer #845: [java] Fix false negative PreserveStackTrace on string concatenation - Alberto Fernández #868: [core] Improve XPath documentation && make small refactors - Gonzalo Ibars Ingman #875: [core] Support shortnames when using filelist - John Zhang #886: [java] Fix #885 - Matias Comercio #900: [core] Use the isEmpty method instead of comparing the value of size() to 0 - reudismam #914: [doc] Apex @SuppressWarnings documentation updated - Akshat Bahety #918: [doc] Add qa-eclipse as new tool - Akshat Bahety #927: [java][doc] Fix example of AbstractClassWithoutAnyMethod - Kazuma Watanabe Home ⋅ Documentation ⋅ Bugs ⋅ About ⋅ News ⋅ Support ⋅ Downloads ⋅ Plugins Copyright © 2025 PMD. All Rights Reserved. Credits: Landing Page Theme, based on free to use, open source Bootstrap theme created by Start Bootstrap.