Package edu.umd.cs.findbugs.detect
Class FindOpenStream
java.lang.Object
edu.umd.cs.findbugs.ResourceTrackingDetector<Stream,StreamResourceTracker>
edu.umd.cs.findbugs.detect.FindOpenStream
- All Implemented Interfaces:
Detector
,Priorities
,StatelessDetector
,Cloneable
public final class FindOpenStream
extends ResourceTrackingDetector<Stream,StreamResourceTracker>
implements StatelessDetector
A Detector to look for streams that are opened in a method, do not escape the
method, and are not closed on all paths out of the method. Note that "stream"
is a bit misleading, since we also use the detector to look for database
resources that aren't closed.
- Author:
- David Hovemeyer, Agustin Toribio [email protected]
-
Field Summary
Fields inherited from class edu.umd.cs.findbugs.ResourceTrackingDetector
bugAccumulator, bugReporter
Fields 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, StreamResourceTracker resourceTracker, ResourceCollection<Stream> resourceCollection) clone()
getResourceTracker
(ClassContext classContext, org.apache.bcel.classfile.Method method) void
inspectResult
(ClassContext classContext, org.apache.bcel.generic.MethodGen methodGen, CFG cfg, Dataflow<ResourceValueFrame, ResourceValueAnalysis<Stream>> dataflow, Stream stream) static boolean
isMainMethod
(org.apache.bcel.classfile.Method method) boolean
prescreen
(ClassContext classContext, org.apache.bcel.classfile.Method method, boolean mightClose) void
visitClassContext
(ClassContext classContext) Visit the ClassContext for a class which should be analyzed for instances of bug patterns.Methods inherited from class edu.umd.cs.findbugs.ResourceTrackingDetector
report
-
Constructor Details
-
FindOpenStream
-
-
Method Details
-
clone
- Specified by:
clone
in interfaceStatelessDetector
- Overrides:
clone
in classObject
-
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
- Overrides:
visitClassContext
in classResourceTrackingDetector<Stream,
StreamResourceTracker> - Parameters:
classContext
- the ClassContext
-
prescreen
public boolean prescreen(ClassContext classContext, org.apache.bcel.classfile.Method method, boolean mightClose) - Specified by:
prescreen
in classResourceTrackingDetector<Stream,
StreamResourceTracker>
-
getResourceTracker
public StreamResourceTracker getResourceTracker(ClassContext classContext, org.apache.bcel.classfile.Method method) - Specified by:
getResourceTracker
in classResourceTrackingDetector<Stream,
StreamResourceTracker>
-
isMainMethod
public static boolean isMainMethod(org.apache.bcel.classfile.Method method) -
analyzeMethod
public void analyzeMethod(ClassContext classContext, org.apache.bcel.classfile.Method method, StreamResourceTracker resourceTracker, ResourceCollection<Stream> resourceCollection) throws CFGBuilderException, DataflowAnalysisException - Overrides:
analyzeMethod
in classResourceTrackingDetector<Stream,
StreamResourceTracker> - Throws:
CFGBuilderException
DataflowAnalysisException
-
inspectResult
public void inspectResult(ClassContext classContext, org.apache.bcel.generic.MethodGen methodGen, CFG cfg, Dataflow<ResourceValueFrame, ResourceValueAnalysis<Stream>> dataflow, Stream stream) - Specified by:
inspectResult
in classResourceTrackingDetector<Stream,
StreamResourceTracker>
-