PMD 3.8 - Four new rules, much faster

04 Oct 2006

PMD 3.8 has been released! You can download this release or read the changelog.

PMD 3.8 has four fine new rules: BrokenNullCheck (by Wouter Zelle), AvoidRethrowingException (by George Thomas), and UnnecessaryWrapperObjectCreation and UselessStringValueOf, both written by Xavier Le Vourch. There are a slew of bugfixes and improvements to various rules: Jason Bennett's CyclomaticComplexity improvements, numerous fixes from Xavier Le Vourch and Wouter Zelle, cleanups from Jorn Stampehl, and a bunch of optimizations to various rules and internal classes from Brian Remedios.

You'll also notice a considerable speed increase thanks to efforts by Allan Caplan, who rewrote seven XPath rules in Java to make them faster. This yields about a 40% speed increase in the basic ruleset; thanks Allan! We've also made various internal improvements, like checking for NOPMD markers while tokenizing the code, that make processing every source file around 5-10% faster.

Other improvements include an XSLT stylesheet for CPD so you can transform the XML report to HTML, CPD GUI improvements from Brian Remedios, a newer version of the Jaxen library, the ability to have a custom message with NOPMD thanks to Attila Korompai, and many C tokenizer improvements from Jarkko Hietaniemin.

For more information on PMD, check out the site or get the book!