These are new rules that are still in progress.
The dataflow analysis tracks local definitions, undefinitions and references to variables on different paths on the data flow. From those informations there can be found various problems. 1. UR - Anomaly: There is a reference to a variable that was not defined before. This is a bug and leads to an error. 2. DU - Anomaly: A recently defined variable is undefined. These anomalies may appear in normal source text. 3. DD - Anomaly: A recently defined variable is redefined. This is ominous but don't have to be a bug.
This rule is defined by the following Java class: net.sourceforge.pmd.dfa.DaaRule
Here's an example of code that would trigger this rule:
public class Foo { public void foo() { int buz = 5; buz = 6; // redefinition of buz -> dd-anomaly foo(buz); buz = 2; } // buz is undefined when leaving scope -> du-anomaly }
This rule has the following properties:
Name | Default value | Description |
---|---|---|
maxviolations | 100 | |
maxpaths | 1000 |