Yesterday, I released a new version of PMD. It’s mostly a bugfix release and it was time after almost 2 months to get out a new version.

The bugfixes are a healthy mix of false positives and negatives in the Java rules space. In total 19 bugs have been fixed. The affected rules are:

  • java-controversial/DataFlowAnomalyAnalysis (#1393)
  • java-design/ConstructorCallsOverridableMethod (#1388)
  • java-imports/UnnecessaryFullyQualifiedName (#1404)
  • java-logging/GuardLogStatementJavaUtil (#1398)
  • java-migrating/JUnit4TestShouldUseBeforeAnnotation (#1400)
  • java-naming/VariableNamingConventions (#1399)
  • java-optimizations/PrematureDeclaration (#1396)
  • java-optimizations/SimplifyStartsWith (#1392)
  • java-strings/ConsecutiveLiteralAppends (#1384, #1401)
  • java-strings/ConsecutiveAppendsShouldReuse (#1370)
  • java-strings/InsufficientStringBufferDeclarationRule (#1371, #1380)
  • java-strings/StringToString (#1397)
  • java-unusedcode/UnusedPrivateMethod (#1395, #1403, #1405)

There is one bugfix, that hopefully fixes a problem for Windows users: As you know, Windows usually doesn’t care about cases of filenames - and so should PMD under Windows. This should be fixed and file exclusions for CPD should work as expected now under Windows, too (#1402).

Another bugfix is a small fix in the internal dogfood.xml ruleset, that PMD uses itself on its own source code (#1394). It excluded a rule, that has been renamed a while ago from UncommentedEmptyMethod to UncommentedEmptyMethodBody.

The exact git log is here: https://github.com/pmd/pmd/compare/pmd_releases/5.3.3...pmd:pmd_releases/5.3.4

And most important - the usual news with the download links:

Thanks to all who contributed to this release with either bug reports or fixes!