Package edu.umd.cs.findbugs
Class ResourceTrackingDetector<Resource,ResourceTrackerType extends ResourceTracker<Resource>>
java.lang.Object
edu.umd.cs.findbugs.ResourceTrackingDetector<Resource,ResourceTrackerType>
- All Implemented Interfaces:
Detector
,Priorities
- Direct Known Subclasses:
FindOpenStream
,FindUnreleasedLock
public abstract class ResourceTrackingDetector<Resource,ResourceTrackerType extends ResourceTracker<Resource>>
extends Object
implements Detector
Abstract implementation of a Detector to find methods where a particular kind
of created resource is not cleaned up or closed properly. Subclasses should
override the abstract methods to determine what kinds of resources are
tracked by the detector.
- Author:
- David Hovemeyer
-
Field Summary
FieldsFields inherited from interface edu.umd.cs.findbugs.Priorities
EXP_PRIORITY, HIGH_PRIORITY, IGNORE_PRIORITY, LOW_PRIORITY, NORMAL_PRIORITY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
analyzeMethod
(ClassContext classContext, org.apache.bcel.classfile.Method method, ResourceTrackerType resourceTracker, ResourceCollection<Resource> resourceCollection) abstract ResourceTrackerType
getResourceTracker
(ClassContext classContext, org.apache.bcel.classfile.Method method) abstract void
inspectResult
(ClassContext classContext, org.apache.bcel.generic.MethodGen methodGen, CFG cfg, Dataflow<ResourceValueFrame, ResourceValueAnalysis<Resource>> dataflow, Resource resource) abstract boolean
prescreen
(ClassContext classContext, org.apache.bcel.classfile.Method method, boolean mightClose) void
report()
This method is called after all classes to be visited.void
visitClassContext
(ClassContext classContext) Visit the ClassContext for a class which should be analyzed for instances of bug patterns.
-
Field Details
-
bugAccumulator
-
bugReporter
-
-
Constructor Details
-
ResourceTrackingDetector
-
-
Method Details
-
prescreen
public abstract boolean prescreen(ClassContext classContext, org.apache.bcel.classfile.Method method, boolean mightClose) -
getResourceTracker
public abstract ResourceTrackerType getResourceTracker(ClassContext classContext, org.apache.bcel.classfile.Method method) throws DataflowAnalysisException, CFGBuilderException -
inspectResult
public abstract void inspectResult(ClassContext classContext, org.apache.bcel.generic.MethodGen methodGen, CFG cfg, Dataflow<ResourceValueFrame, ResourceValueAnalysis<Resource>> dataflow, Resource resource) -
visitClassContext
Description copied from interface:Detector
Visit the ClassContext for a class which should be analyzed for instances of bug patterns.- Specified by:
visitClassContext
in interfaceDetector
- Parameters:
classContext
- the ClassContext
-
analyzeMethod
public void analyzeMethod(ClassContext classContext, org.apache.bcel.classfile.Method method, ResourceTrackerType resourceTracker, ResourceCollection<Resource> resourceCollection) throws CFGBuilderException, DataflowAnalysisException -
report
public void report()Description copied from interface:Detector
This method is called after all classes to be visited. It should be used by any detectors which accumulate information over all visited classes to generate results.
-