Release Notes: This release adds seven new rules, a bunch of bugfixes, better JDK 1.5 support, properties for XPath rules, an improved Ant task, a more informative text report, and many other improvements and updates.
Release Notes: Three new rules were added. Bugfixes were made. Various internal improvements were done to make writing rules easier.
Release Notes: This release includes eight new rules, a slew of bugfixes, and better support for JDK 1.5. Several rules were optimized; for example, UnusedModifer now runs about ten times faster.
Release Notes: PMD now has support for parsing JDK 1.5 source code, including enumerations, generics, annotations, and variable length arguments. There are also 17 new rules, and several of the existing rules have been optimized.
Release Notes: This release fixes bugs in the "sunsecure", "optimization", and "strictexception" rulesets; many exceptions were being thrown. If you downloaded 2.2, please try this instead.
Release Notes: There are several new rules (LocalVariableCouldBeFinal, MethodArgumentCouldBeFinal, AvoidInstantiatingObjectsInLoops, ArrayIsStoredDirectly, MethodReturnsInternalArray, AssignmentToNonFinalStatic, and AvoidConcatenatingNonLiteralsInStringBuffer), a few bugfixes, and a few new features. CPD supports any language, the symbol table code is much cleaner, the "run PMD" scripts are now in the "bin/" directory vs the "etc/" directory, and the rule overriding works better.
Release Notes: Many bugfixes and two new rules: AvoidProtectedFieldInFinalClass and SystemPrintln. Rules now have more consistent names, JDK 1.5 support is slightly better (although generics and annotations don't work yet), and CPD now has support for ignoring identifiers.
Release Notes: This release comes with 10 new rules, including a new "logging" ruleset. It includes a feature to ignore violations using a "NOPMD" comment in the code. It also can process zip/jar files of source, the HTML report can now link to online source code, and a data flow analysis package is included. Existing rules have been enhanced, and there are several bugfixes as well.
Release Notes: Four new rules were added. Some improvements were made to various existing rules. UnusedLocal now catches variables which are assigned but not used. Some bugs were fixed to reduce false positives.
Release Notes: New rules: ExceptionAsFlowControlRule, BadComparisonRule, AvoidThrowingCertainExceptionTypesRule, AvoidCatchingNPERule, and OptimizableToArrayCallRule. Major grammar changes: many new node types have been added, and many superfluous nodes have been removed from the runtime AST. Bug 786611 has been fixed. Expressions are no longer over-expanded in the AST. Bug 874284 has been fixed. The AST now contains tokens for bitwise or expressions, e.g. "|".