public class NoiseNullDeref extends java.lang.Object implements Detector, UseAnnotationDatabase, NullDerefAndRedundantComparisonCollector
IsNullValueAnalysis| Modifier and Type | Field and Description |
|---|---|
static boolean |
DEBUG |
EXP_PRIORITY, HIGH_PRIORITY, IGNORE_PRIORITY, LOW_PRIORITY, NORMAL_PRIORITY| Constructor and Description |
|---|
NoiseNullDeref(BugReporter bugReporter) |
| Modifier and Type | Method and Description |
|---|---|
void |
foundGuaranteedNullDeref(java.util.Set<Location> assignedNullLocationSet,
java.util.Set<Location> derefLocationSet,
java.util.SortedSet<Location> doomedLocations,
ValueNumberDataflow vna,
ValueNumber refValue,
BugAnnotation variableAnnotation,
NullValueUnconditionalDeref deref,
boolean npeIfStatementCovered)
Subclasses should override this method to capture values assigned null
(or that become null through a comparison and branch) that are guaranteed
to reach a dereference (ignoring implicit exception paths).
|
void |
foundNullDeref(Location location,
ValueNumber valueNumber,
IsNullValue refValue,
ValueNumberFrame vnaFrame)
Deprecated.
|
void |
foundNullDeref(Location location,
ValueNumber valueNumber,
IsNullValue refValue,
ValueNumberFrame vnaFrame,
boolean isConsistent)
Subclasses should override this method to capture locations where a null
pointer is dereferenced.
|
void |
foundRedundantNullCheck(Location location,
RedundantBranch redundantBranch)
Subclasses should override this method to capture locations where a
redundant null comparison is performed.
|
static boolean |
isThrower(BasicBlock target) |
void |
report()
This method is called after all classes to be visited.
|
boolean |
skipIfInsideCatchNull() |
void |
visitClassContext(ClassContext classContext)
Visit the ClassContext for a class which should be analyzed for instances
of bug patterns.
|
public NoiseNullDeref(BugReporter bugReporter)
public void visitClassContext(ClassContext classContext)
DetectorvisitClassContext in interface DetectorclassContext - the ClassContextpublic void report()
Detectorpublic boolean skipIfInsideCatchNull()
@Deprecated public void foundNullDeref(Location location, ValueNumber valueNumber, IsNullValue refValue, ValueNumberFrame vnaFrame)
foundNullDeref(Location,ValueNumber,IsNullValue,ValueNumberFrame,boolean)
insteadNullDerefAndRedundantComparisonCollectorfoundNullDeref in interface NullDerefAndRedundantComparisonCollectorlocation - the Location of the null dereferencevalueNumber - the ValueNumber of the possibly-null valuerefValue - the kind of possibly-null value dereferencedvnaFrame - The ValueNumber Frame at the point where the dereference
occurredpublic void foundNullDeref(Location location, ValueNumber valueNumber, IsNullValue refValue, ValueNumberFrame vnaFrame, boolean isConsistent)
NullDerefAndRedundantComparisonCollectorfoundNullDeref in interface NullDerefAndRedundantComparisonCollectorlocation - the Location of the null dereferencevalueNumber - the ValueNumber of the possibly-null valuerefValue - the kind of possibly-null value dereferencedvnaFrame - The ValueNumber Frame at the point where the dereference
occurredisConsistent - true if the refValue is identical at all clones of the same
instructionpublic static boolean isThrower(BasicBlock target)
public void foundRedundantNullCheck(Location location, RedundantBranch redundantBranch)
NullDerefAndRedundantComparisonCollectorfoundRedundantNullCheck in interface NullDerefAndRedundantComparisonCollectorlocation - the Location of the redundant null checkredundantBranch - the RedundantBranchpublic void foundGuaranteedNullDeref(@Nonnull
java.util.Set<Location> assignedNullLocationSet,
@Nonnull
java.util.Set<Location> derefLocationSet,
java.util.SortedSet<Location> doomedLocations,
ValueNumberDataflow vna,
ValueNumber refValue,
@CheckForNull
BugAnnotation variableAnnotation,
NullValueUnconditionalDeref deref,
boolean npeIfStatementCovered)
NullDerefAndRedundantComparisonCollectorfoundGuaranteedNullDeref in interface NullDerefAndRedundantComparisonCollectorassignedNullLocationSet - set of locations where the value becomes nullderefLocationSet - set of locations where dereferences occurdoomedLocations - locations at which the value is doomedvna - ValueNumberDataflowrefValue - the null valuevariableAnnotation - TODOderef - TODOnpeIfStatementCovered - true if doom location is a statementFindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.