My first patches
The author of PMD has put me on the credits page which also makes me feel good.
Hurray for free software!
PMD (doesn't stand for anything) is actually a pretty neat tool. It's a static code analyzer for Java (sort of like JLint) written in Java which means writing new rules is possible.
I thought it was pretty stupid when we started using it, but after tuning the rules a bit it gives you some useful information. I know that using an ArrayList instead of a List is stupid, but PMD points out every instance of it in the code. PMD isn't going to help you refactor your architecture, but it gives some decent tips to help you avoid truly awful code. If you've come onto a project that's been under development for a while and has gotten crufty (not that I would know anything about that), PMD can help you pinpoint stupid areas of your code.