27 January 2019
The PMD team is pleased to announce PMD 6.11.0.
This is a minor release.
//BooleanExpression[@Operator='&&'].SELECT * FROM TABLE(expr)).The new Java rule UnsynchronizedStaticFormatter (java-multithreading) detects
unsynchronized usages of static java.text.Format instances. This rule is a more generic replacement of the
rule UnsynchronizedStaticDateFormatter which focused just on DateFormat.
The new Java rule ForLoopVariableCount (java-bestpractices) checks for
the number of control variables in a for-loop. Having a lot of control variables makes it harder to understand
what the loop does. The maximum allowed number of variables is by default 1 and can be configured by a
property.
The new Java rule AvoidReassigningLoopVariables (java-bestpractices) searches
for loop variables that are reassigned. Changing the loop variables additionally to the loop itself can lead to
hard-to-find bugs.
The new Java rule UseDiamondOperator (java-codestyle) looks for constructor
calls with explicit type parameters. Since Java 1.7, these type parameters are not necessary anymore, as they
can be inferred now.
LocalVariableCouldBeFinal (java-codestyle) has a new
property ignoreForEachDecl, which is by default disabled. The new property allows for ignoring
non-final loop variables in a for-each statement.UnsynchronizedStaticDateFormatter has been deprecated and
will be removed with PMD 7.0.0. The rule is replaced by the more general
UnsynchronizedStaticFormatter.| #1507: [plsql] Parse Exception when using ‘ | ’ operator in where clause |
StatisticalRule and the related helper classes and base rule classes
are deprecated for removal in 7.0.0. This includes all of net.sourceforge.pmd.stat and net.sourceforge.pmd.lang.rule.stat,
and also AbstractStatisticalJavaRule, AbstractStatisticalApexRule and the like.
The methods Report#addMetric and metricAdded
will also be removed.setProperty is deprecated,
because MultiValuePropertyDescriptor is deprecated as well