Looking for the latest version? Download pmd-bin-5.5.3.zip (58.7 MB)
Home / pmd / 5.4.4
Name Modified Size Downloads / Week Status
Parent folder
pmd-doc-5.4.4.zip 2017-01-28 54.8 MB 0
pmd-src-5.4.4.zip 2017-01-28 2.8 MB 11 weekly downloads
pmd-bin-5.4.4.zip 2017-01-28 29.2 MB 11 weekly downloads
ReadMe.md 2017-01-28 4.6 kB 0
Totals: 4 Items   86.8 MB 2

PMD Release Notes

28-January-2017 - 5.4.4

The PMD team is pleased to announce PMD 5.4.4

This is a bug fixing release. The most significant changes are on analysis performance.

Multithread performance has been enhanced by reducing thread-contention on a bunch of areas. This is still an area of work, as the speedup of running multithreaded analysis is still relatively small (4 threads produce less than a 50% speedup). Future releases will keep improving on this area.

Once again, Symbol Table has been an area of great performance improvements. This time we were able to further improve it's performance by roughly 10% on all supported languages. In Java in particular, several more improvements were possible, improving Symbol Table performance by a whooping 30%, that's over 5X faster than PMD 5.4.2, when we first started working on it.

Java developers will also appreciate the revamp of CloneMethodMustImplementCloneable, making it over 500X faster, and PreserveStackTrace which is now 7X faster.

Table Of Contents

New and noteworthy

This is a bug fixing release, no major changes were introduced.

Modified Rules

The Java rule "UseLocaleWithCaseConversions" (ruleset java-design) has been modified, to detect calls to toLowerCase and to toUpperCase also within method call chains. This leads to more detected cases and potentially new false positives. See also bugfix #1556.

Fixed Issues

  • java
    • #206: [java] Parse error on annotation fields with generics
    • #207: [java] Parse error on method reference with generics
    • #208: [java] Parse error with local class with 2 or more annotations
    • #213: [java] CPD: OutOfMemory when analyzing Lucene
  • java-design
    • #1448: [java] ImmutableField: Private field in inner class gives false positive with lambdas
    • #1495: [java] UnnecessaryLocalBeforeReturn with assert
    • #1552: [java] MissingBreakInSwitch - False positive for continue
    • #1556: [java] UseLocaleWithCaseConversions does not works with ResultSet (false negative)
    • #177: [java] SingularField with lambdas as final fields
  • java-imports
    • #1546: [java] UnnecessaryFullyQualifiedNameRule doesn't take into consideration conflict resolution
    • #1547: [java] UnusedImportRule - False Positive for only usage in Javadoc - {@link ClassName#CONSTANT}
    • #1555: [java] UnnecessaryFullyQualifiedName: Really necessary fully qualified name
  • java-unnecessary
    • #199: [java] UselessParentheses: Parentheses in return statement are incorrectly reported as useless
  • java-strings
    • #202: [java] [doc] ConsecutiveAppendsShouldReuse is not really an optimization
  • XML
    • #1518: [xml] Error while processing xml file with ".webapp" in the file or directory name
  • psql
    • #1549: [plsql] Parse error for IS [NOT] NULL construct
  • javascript
    • #201: [javascript] template strings are not correctly parsed
  • General
    • #1511: [core] Inconsistent behavior of Rule.start/Rule.end

External Contributions

  • #129: [plsql] Added correct parse of IS [NOT] NULL and multiline DML
  • #152: [java] fixes #1552 continue does not require break
  • #154: [java] Fix #1547: UnusedImports: Adjust regex to support underscores
  • #170: [core] Ant Task Formatter encoding issue with XMLRenderer
  • #200: [javascript] Templatestring grammar fix
Source: ReadMe.md, updated 2017-01-28

Thanks for helping keep SourceForge clean.

Screenshot instructions:
Red Hat Linux   Ubuntu

Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Briefly describe the problem (required):

Upload screenshot of ad (required):
Select a file, or drag & drop file here.

Please provide the ad click URL, if possible:

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks