PMD 6.14.0 released

28-April-2019 - 6.14.0

The PMD team is pleased to announce PMD 6.14.0.

This is a minor release.

Table Of Contents

New and noteworthy

Dart support

Thanks to the contribution from Maikel Steneker, and built on top of the ongoing efforts to fully support Antlr-based languages, PMD now has CPD support for Dart.

Being based on a proper Antlr grammar, CPD can:

Updated PMD Designer

This PMD release ships a new version of the pmd-designer. For the changes, see PMD Designer Changelog.

Modified Rules

  • The Java rule AssignmentToNonFinalStatic (java-errorprone) will now report on each assignment made within a constructor rather than on the field declaration. This makes it easier for developers to find the offending statements.

  • The Java rule NoPackage (java-codestyle) will now report additionally enums and annotations that do not have a package declaration.

Fixed Issues

  • all
    • #1515: [core] Module pmd-lang-test is missing javadoc artifact
    • #1788: [cpd] [core] Use better ClassLoader for ServiceLoader in LanguageFactory
    • #1794: [core] Ruleset Compatibility fails with excluding rules
  • go
    • #1751: [go] Parsing errors encountered with escaped backslash
  • java
    • #1532: [java] NPE with incomplete auxclasspath
    • #1691: [java] Possible Data Race in JavaTypeDefinitionSimple.getGenericType
    • #1729: [java] JavaRuleViolation loses information in className field when class has package-private access level
  • java-bestpractices
    • #1190: [java] UnusedLocalVariable/UnusedPrivateField false-positive
    • #1720: [java] UnusedImports false positive for Javadoc link with array type
  • java-codestyle
    • #1755: [java] False negative in UnnecessaryLocalBeforeReturn when splitting statements across multiple lines
    • #1782: [java] NoPackage: False Negative for enums
  • java-design
    • #1760: [java] UseObjectForClearerAPI flags private methods

API Changes

No changes.

External Contributions