* [#1344](https://sourceforge.net/p/pmd/bugs/1344/): AbstractNaming should check reverse
* [#1361](https://sourceforge.net/p/pmd/bugs/1361/): ShortVariable and ShortMethodName configuration
* [#1414](https://sourceforge.net/p/pmd/bugs/1414/): Command line parameter to disable “failOnViolation” behavior PMD and CPD Command Line Interfaces have a new optional parameter: <tt>failOnViolation</tt>. Executing PMD with the option <tt>-failOnViolation false</tt> will perform the PMD checks but won’t fail the build and still exit with status 0\. This is useful if you only want to generate the report with violations but don’t want to fail your build.
* [#1420](https://sourceforge.net/p/pmd/bugs/1420/): UnusedPrivateField: Ignore fields if using lombok
The java manual says “By convention, classes that implement the <tt>Cloneable</tt> interface should override <tt>Object.clone</tt> (which is protected) with a public method.”
In order to avoid mistakes with forgotten access modifiers for methods, this rule ensures, that you explicitly mark the usage of the default access modifier by placing a comment.
Verifies that there is only one method called <tt>getInstance</tt>. If there are more methods that return the singleton, then it can easily happen, that these are not the same instances - and thus no singleton.
By default, this rule flags now classes, that are named “Abstract” but are not abstract. This behavior can be disabled by setting the new property <tt>strict</tt> to false.
The rule “UseSingleton” _has been renamed_ to “UseUtilityClass”. See also bugs [#1059](https://sourceforge.net/p/pmd/bugs/1059) and [#1339](https://sourceforge.net/p/pmd/bugs/1339/).
## Removed Rules
* Java
* Basic: The following rules of ruleset “Basic” were marked as deprecated and are removed with this release now:
These rules are still available in the rulesets “Empty” (rulesets/java/empty.xml) and “Unnecessary” (rulesets/java/unnecessary.xml) respectively.
* Design: The rule “UncommentedEmptyMethod” has been renamed last release to “UncommentedEmptyMethodBody”. The old rule name reference has been removed with this release now.
* Controversial: The rule “BooleanInversion” has been deprecated last release and has been removed with this release completely.
## Pull Requests
* [#21](https://github.com/adangel/pmd/pull/21): Added PMD Rules for Singleton pattern violations.
* [#23](https://github.com/adangel/pmd/pull/23): Extended Objective-C grammar to accept Unicode characters in identifiers
* [#54](https://github.com/pmd/pmd/pull/54): Add a new rulesets for Maven’s POM rules
* [#55](https://github.com/pmd/pmd/pull/55): Fix run.sh for paths with spaces
* [#56](https://github.com/pmd/pmd/pull/56): Adding support for WSDL rules
* [#57](https://github.com/pmd/pmd/pull/57): Add default access modifier as comment rule
* [#58](https://github.com/pmd/pmd/pull/58): Add rule for unnecessary literal boolean in ternary operators
* [#59](https://github.com/pmd/pmd/pull/59): Add check to Boxed booleans in UseAssertTrueInsteadOfAssertEquals rule
The method <tt>addNameOccurrence</tt> returns now a Set of NameDeclarations to which the given occurrence has been added. This is useful in case there are ambiguous declarations of methods.
The method <tt>findVariableHere</tt> returns now a Set of NameDeclarations which match the given occurrence. This is useful in case there are ambiguous declarations of methods.