24-May-2020 - 6.24.0
The PMD team is pleased to announce PMD 6.24.0.
This is a minor release.
New and noteworthy
CPD now supports XML as well
Thanks to Fernando Cosso CPD can now find duplicates in XML files as well. This is useful to find duplicated sections in XML files.
Updated PMD Designer
This PMD release ships a new version of the pmd-designer. For the changes, see PMD Designer Changelog.
The new Java Rule
java-bestpractices) find String literals, that are used in comparisons and are not positioned first. Using the String literal as the receiver of e.g.
equalshelps to avoid NullPointerExceptions.
This rule is replacing the two old rules
PositionLiteralsFirstInCaseInsensitiveComparisonsand extends the check for the methods
contentEqualsin addition to
Note: This rule also replaces the two mentioned rules in Java’s quickstart ruleset.
- The two Java rules
PositionLiteralsFirstInCaseInsensitiveComparisonshave been deprecated in favor of the new rule
- #2468: [apex] Unused Local Variable fails on blocks
- #2495: [c#] Support for interpolated verbatim strings
- #2472: [java] JavaCharStream throws an Error on invalid escape
- #2145: [java] Deprecate rules PositionLiteralsFirstIn(CaseInsensitive)Comparisons in favor of LiteralsFirstInComparisons
- #2288: [java] JUnitTestsShouldIncludeAssert: Add support for Hamcrest MatcherAssert.assertThat
- #2437: [java] AvoidPrintStackTrace can’t detect the case e.getCause().printStackTrace()
- #2476: [java] MethodNamingConventions - Add support for JUnit 5 method naming
- #2477: [java] JUnitSpelling false-positive for JUnit5/4 tests
- #2473: [swift] Swift 5 (up to 5.2) support for CPD
BaseLanguageModule#addVersion(String, LanguageVersionHandler, boolean)
- Some members of
TokenMgrError, in particular, a new constructor is available that should be preferred to the old ones
Note: Experimental APIs are identified with the annotation
see its javadoc for details
- The experimental methods in
BaseLanguageModulehave been replaced by a definitive API.
- #2446: [core] Update maven-compiler-plugin to 3.8.1 - Artem Krosheninnikov
- #2448: [java] Operator Wrap check - Harsh Kukreja
- #2449: [plsql] Additional info in SqlStatement, FormalParameter and FetchStatement - Grzegorz Sudolski
- #2452: [doc] Fix “Making Rulesets” doc sample code indentation - Artur Dryomov
- #2457: [xml] Adding XML to CPD supported languages - Fernando Cosso
- #2465: [dependencies] Upgrade hamcrest, mockito and JUnit - Artem Krosheninnikov
- #2469: [apex] fix false positive unused variable if only a method is called - Gwilym Kuiper
- #2475: [swift] Swift 4.2-5.2 support - kenji21
- #2476: [java] MethodNamingConventions - Add support for JUnit 5 method naming - Bruno Ritz
- #2478: [java] New rule: LiteralsFirstInComparisons - John-Teng
- #2479: [java] False positive with Hamcrest’s assertThat - andreoss
- #2481: [java] Fix JUnitSpellingRule false positive - Artem Krosheninnikov
- #2493: [java] Deprecate redundant String Comparison rules - John-Teng
- #2495: [c#] Support for interpolated verbatim strings - Maikel Steneker
- 114 commits
- 29 closed tickets & PRs
- Days since last release: 30