PMD 4.0 is out! This release (our first major release since Dec 2006) includes a shift to Java 1.5 both internally and in terms of PMD's defaults; you can still process Java 1.4 code but you'll need to use the targetjdk parameter. Other changes since PMD 3.9 include ten new rules, prodigious XPath rule speedups, better memory usage, and lots of bugfixes all around.
You can download this release or view the full changelog.
I'm pretty excited about some of the stuff we're looking at for PMD these days. I think we're finally going to buckle down and get PMD to do full type resolution, so a rule won't just match on typeName.equals("StringBuffer") but will actually resolve the types to ensure it's checking something with StringBuffer.class. This will eliminate a ton of false positives and should find a lot more problems, too. On a different note, Ryan Gustafson is working on an optimized XPath 2.0 engine for PMD that would make XPath rules even faster - and would give us more advanced XPath capabilities. Should be a fun next few months!
If you're using PMD, get the PMD book! Or, if you're interested in the JavaCC parser generator that powers PMD, get the JavaCC book!