Package | Description |
---|---|
edu.umd.cs.findbugs |
Main package for the FindBugs application - contains the
engine class (FindBugs), the object model classes for bug instances
(BugInstance, BugAnnotation), and other miscellany.
|
edu.umd.cs.findbugs.ba |
A bytecode analysis framework for BCEL, providing CFG construction,
generic dataflow analysis, and a variety of specific dataflow analyses.
|
edu.umd.cs.findbugs.ba.bcp | |
edu.umd.cs.findbugs.ba.npe | |
edu.umd.cs.findbugs.ba.vna | |
edu.umd.cs.findbugs.bcel | |
edu.umd.cs.findbugs.classfile.engine.bcel |
Support for analyses based on the BCEL bytecode framework.
|
edu.umd.cs.findbugs.detect | |
edu.umd.cs.findbugs.props |
Modifier and Type | Method and Description |
---|---|
ClassContext |
BytecodeScanningDetector.getClassContext()
Get the ClassContext of the class currently being visited.
|
Modifier and Type | Method and Description |
---|---|
void |
BugAccumulator.accumulateBug(BugInstance bug,
ClassContext classContext,
org.apache.bcel.generic.MethodGen methodGen,
java.lang.String sourceFile,
Location location) |
void |
BugAccumulator.accumulateBug(BugInstance bug,
ClassContext classContext,
org.apache.bcel.classfile.Method method,
Location location) |
BugInstance |
BugInstance.addSomeSourceForTopTwoStackValues(ClassContext classContext,
org.apache.bcel.classfile.Method method,
Location location) |
BugInstance |
BugInstance.addSourceForTopStackValue(ClassContext classContext,
org.apache.bcel.classfile.Method method,
Location location) |
BugInstance |
BugInstance.addSourceLine(ClassContext classContext,
org.apache.bcel.generic.MethodGen methodGen,
java.lang.String sourceFile,
org.apache.bcel.generic.InstructionHandle handle)
Add a source line annotation for the given instruction in the given
method.
|
BugInstance |
BugInstance.addSourceLine(ClassContext classContext,
org.apache.bcel.generic.MethodGen methodGen,
java.lang.String sourceFile,
org.apache.bcel.generic.InstructionHandle start,
org.apache.bcel.generic.InstructionHandle end)
Add a source line annotation describing a range of instructions.
|
BugInstance |
BugInstance.addSourceLine(ClassContext classContext,
org.apache.bcel.classfile.Method method,
org.apache.bcel.generic.InstructionHandle handle)
Add source line annotation for given Location in a method.
|
BugInstance |
BugInstance.addSourceLine(ClassContext classContext,
org.apache.bcel.classfile.Method method,
Location location)
Add source line annotation for given Location in a method.
|
BugInstance |
BugInstance.addSourceLine(ClassContext classContext,
PreorderVisitor visitor,
int pc)
Add a source line annotation for instruction whose PC is given in the
method that the given visitor is currently visiting.
|
BugInstance |
BugInstance.addSourceLineRange(ClassContext classContext,
PreorderVisitor visitor,
int startPC,
int endPC)
Add a source line annotation describing the source line numbers for a
range of instructions in the method being visited by the given visitor.
|
void |
ResourceTrackingDetector.analyzeMethod(ClassContext classContext,
org.apache.bcel.classfile.Method method,
ResourceTrackerType resourceTracker,
ResourceCollection<Resource> resourceCollection) |
static LocalVariableAnnotation |
LocalVariableAnnotation.findMatchingIgnoredParameter(ClassContext classContext,
org.apache.bcel.classfile.Method method,
java.lang.String name,
java.lang.String signature) |
static LocalVariableAnnotation |
LocalVariableAnnotation.findUniqueBestMatchingParameter(ClassContext classContext,
org.apache.bcel.classfile.Method method,
java.lang.String name,
java.lang.String signature) |
static SourceLineAnnotation |
SourceLineAnnotation.fromVisitedInstruction(ClassContext classContext,
org.apache.bcel.generic.MethodGen methodGen,
java.lang.String sourceFile,
org.apache.bcel.generic.InstructionHandle handle)
Factory method for creating a source line annotation describing the
source line number for a visited instruction.
|
static SourceLineAnnotation |
SourceLineAnnotation.fromVisitedInstruction(ClassContext classContext,
org.apache.bcel.classfile.Method method,
org.apache.bcel.generic.InstructionHandle handle)
Create from Method and InstructionHandle in a visited class.
|
static SourceLineAnnotation |
SourceLineAnnotation.fromVisitedInstruction(ClassContext classContext,
org.apache.bcel.classfile.Method method,
int pc)
Create from Method and bytecode offset in a visited class.
|
static SourceLineAnnotation |
SourceLineAnnotation.fromVisitedInstruction(ClassContext classContext,
org.apache.bcel.classfile.Method method,
Location loc)
Create from Method and Location in a visited class.
|
static SourceLineAnnotation |
SourceLineAnnotation.fromVisitedInstruction(ClassContext classContext,
PreorderVisitor visitor,
int pc)
Factory method for creating a source line annotation describing the
source line number for the instruction being visited by given visitor.
|
static SourceLineAnnotation |
SourceLineAnnotation.fromVisitedInstructionRange(ClassContext classContext,
org.apache.bcel.generic.MethodGen methodGen,
java.lang.String sourceFile,
org.apache.bcel.generic.InstructionHandle start,
org.apache.bcel.generic.InstructionHandle end)
Factory method for creating a source line annotation describing the
source line numbers for a range of instruction in a method.
|
static SourceLineAnnotation |
SourceLineAnnotation.fromVisitedInstructionRange(ClassContext classContext,
PreorderVisitor visitor,
int startPC,
int endPC)
Factory method for creating a source line annotation describing the
source line numbers for a range of instructions in the method being
visited by the given visitor.
|
abstract ResourceTrackerType |
ResourceTrackingDetector.getResourceTracker(ClassContext classContext,
org.apache.bcel.classfile.Method method) |
static BugAnnotation |
BugInstance.getSomeSource(ClassContext classContext,
org.apache.bcel.classfile.Method method,
Location location,
OpcodeStack stack,
int stackPos) |
static BugAnnotation |
BugInstance.getSourceForStackValue(ClassContext classContext,
org.apache.bcel.classfile.Method method,
Location location,
int depth) |
static BugAnnotation |
BugInstance.getSourceForTopStackValue(ClassContext classContext,
org.apache.bcel.classfile.Method method,
Location location) |
abstract void |
ResourceTrackingDetector.inspectResult(ClassContext classContext,
org.apache.bcel.generic.MethodGen methodGen,
CFG cfg,
Dataflow<ResourceValueFrame,ResourceValueAnalysis<Resource>> dataflow,
Resource resource) |
abstract boolean |
ResourceTrackingDetector.prescreen(ClassContext classContext,
org.apache.bcel.classfile.Method method,
boolean mightClose) |
abstract boolean |
ByteCodePatternDetector.prescreen(org.apache.bcel.classfile.Method method,
ClassContext classContext)
Prescreen a method.
|
abstract void |
ByteCodePatternDetector.reportMatch(ClassContext classContext,
org.apache.bcel.classfile.Method method,
ByteCodePatternMatch match)
Called to report an instance of the ByteCodePattern.
|
void |
ResourceTrackingDetector.visitClassContext(ClassContext classContext) |
void |
Detector.visitClassContext(ClassContext classContext)
Visit the ClassContext for a class which should be analyzed for instances
of bug patterns.
|
void |
BytecodeScanningDetector.visitClassContext(ClassContext classContext) |
void |
ByteCodePatternDetector.visitClassContext(ClassContext classContext) |
Constructor and Description |
---|
SelfCalls(ClassContext classContext)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
ClassContext |
AnalysisContext.getClassContext(org.apache.bcel.classfile.JavaClass javaClass)
Get the ClassContext for a class.
|
Constructor and Description |
---|
PatternMatcher(ByteCodePattern pattern,
ClassContext classContext,
org.apache.bcel.classfile.Method method)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
static UsagesRequiringNonNullValues |
DerefFinder.getAnalysis(ClassContext classContext,
org.apache.bcel.classfile.Method method) |
static NullnessAnnotation |
DerefFinder.getMethodNullnessAnnotation(ClassContext classContext,
org.apache.bcel.classfile.Method method) |
Constructor and Description |
---|
NullDerefAndRedundantComparisonFinder(ClassContext classContext,
org.apache.bcel.classfile.Method method,
NullDerefAndRedundantComparisonCollector collector)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
static BugAnnotation |
ValueNumberSourceInfo.getFromValueNumber(ClassContext classContext,
org.apache.bcel.classfile.Method method,
Location location,
int stackPos) |
Modifier and Type | Field and Description |
---|---|
protected ClassContext |
CFGDetector.classContext |
Modifier and Type | Method and Description |
---|---|
ClassContext |
PreorderDetector.getClassContext()
Get the ClassContext of the class currently being visited.
|
ClassContext |
AnnotationDetector.getClassContext()
Get the ClassContext of the class currently being visited.
|
Modifier and Type | Method and Description |
---|---|
void |
PreorderDetector.visitClassContext(ClassContext classContext) |
void |
AnnotationDetector.visitClassContext(ClassContext classContext) |
Modifier and Type | Method and Description |
---|---|
ClassContext |
ClassContextClassAnalysisEngine.analyze(IAnalysisCache analysisCache,
ClassDescriptor descriptor) |
Modifier and Type | Method and Description |
---|---|
void |
FindOpenStream.analyzeMethod(ClassContext classContext,
org.apache.bcel.classfile.Method method,
StreamResourceTracker resourceTracker,
ResourceCollection<Stream> resourceCollection) |
edu.umd.cs.findbugs.detect.FindUnreleasedLock.LockResourceTracker |
FindUnreleasedLock.getResourceTracker(ClassContext classContext,
org.apache.bcel.classfile.Method method) |
StreamResourceTracker |
FindOpenStream.getResourceTracker(ClassContext classContext,
org.apache.bcel.classfile.Method method) |
void |
FindUnreleasedLock.inspectResult(ClassContext classContext,
org.apache.bcel.generic.MethodGen methodGen,
CFG cfg,
Dataflow<ResourceValueFrame,ResourceValueAnalysis<edu.umd.cs.findbugs.detect.Lock>> dataflow,
edu.umd.cs.findbugs.detect.Lock resource) |
void |
FindOpenStream.inspectResult(ClassContext classContext,
org.apache.bcel.generic.MethodGen methodGen,
CFG cfg,
Dataflow<ResourceValueFrame,ResourceValueAnalysis<Stream>> dataflow,
Stream stream) |
boolean |
BuildUnconditionalParamDerefDatabase.isCaught(ClassContext classContext,
org.apache.bcel.classfile.Method method,
UnconditionalValueDerefSet entryFact,
ValueNumber paramVN) |
static boolean |
FindInconsistentSync2.isGetterMethod(ClassContext classContext,
org.apache.bcel.classfile.Method method)
Determine whether or not the the given method is a getter method.
|
boolean |
FindUnrelatedTypesInGenericContainer.prescreen(ClassContext classContext,
org.apache.bcel.classfile.Method method)
Use this to screen out methods that do not contain invocations.
|
boolean |
FindBadCast2.prescreen(ClassContext classContext,
org.apache.bcel.classfile.Method method) |
boolean |
FindUnreleasedLock.prescreen(ClassContext classContext,
org.apache.bcel.classfile.Method method,
boolean mightClose) |
boolean |
FindOpenStream.prescreen(ClassContext classContext,
org.apache.bcel.classfile.Method method,
boolean mightClose) |
boolean |
LazyInit.prescreen(org.apache.bcel.classfile.Method method,
ClassContext classContext) |
void |
LazyInit.reportMatch(ClassContext classContext,
org.apache.bcel.classfile.Method method,
ByteCodePatternMatch match) |
void |
XMLFactoryBypass.visitClassContext(ClassContext classContext) |
void |
WrongMapIterator.visitClassContext(ClassContext classContext) |
void |
VolatileUsage.visitClassContext(ClassContext classContext) |
void |
UselessSubclassMethod.visitClassContext(ClassContext classContext) |
void |
UnnecessaryMath.visitClassContext(ClassContext classContext) |
void |
URLProblems.visitClassContext(ClassContext classContext) |
void |
TrainNonNullAnnotations.visitClassContext(ClassContext classContext)
Deprecated.
|
void |
TrainLongInstantfParams.visitClassContext(ClassContext classContext) |
void |
TrainFieldStoreTypes.visitClassContext(ClassContext classContext) |
void |
SwitchFallthrough.visitClassContext(ClassContext classContext) |
void |
SuspiciousThreadInterrupted.visitClassContext(ClassContext classContext) |
void |
SerializableIdiom.visitClassContext(ClassContext classContext) |
void |
ResolveAllReferences.visitClassContext(ClassContext classContext) |
void |
RedundantInterfaces.visitClassContext(ClassContext classContext) |
void |
RedundantConditions.visitClassContext(ClassContext classContext) |
void |
PublicSemaphores.visitClassContext(ClassContext classContext) |
void |
NumberConstructor.visitClassContext(ClassContext classContext)
The detector is only meaningful for Java5 class libraries.
|
void |
NoteSuppressedWarnings.visitClassContext(ClassContext classContext) |
void |
NoteNonNullAnnotations.visitClassContext(ClassContext classContext)
Deprecated.
|
void |
NoteJCIPAnnotation.visitClassContext(ClassContext classContext) |
void |
NoteDirectlyRelevantTypeQualifiers.visitClassContext(ClassContext classContext) |
void |
NoteCheckReturnValueAnnotations.visitClassContext(ClassContext classContext) |
void |
NoteAnnotationRetention.visitClassContext(ClassContext classContext) |
void |
NoiseNullDeref.visitClassContext(ClassContext classContext) |
void |
Naming.visitClassContext(ClassContext classContext) |
void |
MutableEnum.visitClassContext(ClassContext classContext) |
void |
MultithreadedInstanceAccess.visitClassContext(ClassContext classContext) |
void |
Methods.visitClassContext(ClassContext classContext) |
void |
MethodReturnCheck.visitClassContext(ClassContext classContext) |
void |
LostLoggerDueToWeakReference.visitClassContext(ClassContext classContext) |
void |
LoadOfKnownNullValue.visitClassContext(ClassContext classContext) |
void |
IteratorIdioms.visitClassContext(ClassContext classContext) |
void |
InvalidJUnitTest.visitClassContext(ClassContext classContext) |
void |
IntCast2LongAsInstant.visitClassContext(ClassContext classContext) |
void |
InefficientToArray.visitClassContext(ClassContext classContext) |
void |
InefficientMemberAccess.visitClassContext(ClassContext classContext) |
void |
InefficientInitializationInsideLoop.visitClassContext(ClassContext classContext) |
void |
InefficientIndexOf.visitClassContext(ClassContext classContext) |
void |
InconsistentAnnotations.visitClassContext(ClassContext classContext) |
void |
FindUselessObjects.visitClassContext(ClassContext classContext) |
void |
FindUseOfNonSerializableValue.visitClassContext(ClassContext classContext) |
void |
FindUnreleasedLock.visitClassContext(ClassContext classContext) |
void |
FindUnrelatedTypesInGenericContainer.visitClassContext(ClassContext classContext)
Visit the class context
|
void |
FindUncalledPrivateMethods.visitClassContext(ClassContext classContext) |
void |
FindTwoLockWait.visitClassContext(ClassContext classContext) |
void |
FindSqlInjection.visitClassContext(ClassContext classContext) |
void |
FindSleepWithLockHeld.visitClassContext(ClassContext classContext) |
void |
FindSelfComparison2.visitClassContext(ClassContext classContext) |
void |
FindRoughConstants.visitClassContext(ClassContext classContext) |
void |
FindRefComparison.visitClassContext(ClassContext classContext) |
void |
FindOpenStream.visitClassContext(ClassContext classContext) |
void |
FindNullDeref.visitClassContext(ClassContext classContext) |
void |
FindNonSerializableValuePassedToWriteObject.visitClassContext(ClassContext classContext) |
void |
FindNonSerializableStoreIntoSession.visitClassContext(ClassContext classContext) |
void |
FindMismatchedWaitOrNotify.visitClassContext(ClassContext classContext) |
void |
FindMaskedFields.visitClassContext(ClassContext classContext) |
void |
FindJSR166LockMonitorenter.visitClassContext(ClassContext classContext) |
void |
FindInconsistentSync2.visitClassContext(ClassContext classContext) |
void |
FindDeadLocalStores.visitClassContext(ClassContext classContext) |
void |
FindComparatorProblems.visitClassContext(ClassContext classContext) |
void |
FindBugsSummaryStats.visitClassContext(ClassContext classContext) |
void |
FindBadCast2.visitClassContext(ClassContext classContext) |
void |
DuplicateBranches.visitClassContext(ClassContext classContext) |
void |
DumbMethodInvocations.visitClassContext(ClassContext classContext) |
void |
DroppedException.visitClassContext(ClassContext classContext) |
void |
DontIgnoreResultOfPutIfAbsent.visitClassContext(ClassContext classContext) |
void |
DontCatchIllegalMonitorStateException.visitClassContext(ClassContext classContext) |
void |
ConfusedInheritance.visitClassContext(ClassContext classContext) |
void |
ComparatorIdiom.visitClassContext(ClassContext classContext) |
void |
CloneIdiom.visitClassContext(ClassContext classContext) |
void |
CheckImmutableAnnotation.visitClassContext(ClassContext classContext) |
void |
CheckCalls.visitClassContext(ClassContext classContext) |
void |
CallToUnsupportedMethod.visitClassContext(ClassContext classContext) |
void |
CallToUnconditionalThrower.visitClassContext(ClassContext classContext) |
void |
BuildUnconditionalParamDerefDatabase.visitClassContext(ClassContext classContext) |
void |
BuildNonnullReturnDatabase.visitClassContext(ClassContext classContext) |
void |
BuildInterproceduralCallGraph.visitClassContext(ClassContext classContext) |
void |
BadResultSetAccess.visitClassContext(ClassContext classContext) |
void |
BadAppletConstructor.visitClassContext(ClassContext classContext) |
void |
AtomicityProblem.visitClassContext(ClassContext classContext) |
void |
AppendingToAnObjectOutputStream.visitClassContext(ClassContext classContext) |
void |
FindTwoLockWait.visitLocation(ClassContext classContext,
Location location,
org.apache.bcel.generic.MethodGen methodGen,
LockDataflow dataflow) |
Modifier and Type | Method and Description |
---|---|
static void |
WarningPropertyUtil.addPropertiesForDataMining(WarningPropertySet<WarningProperty> propertySet,
ClassContext classContext,
org.apache.bcel.classfile.Method method,
Location location)
Add all relevant general warning properties to the given property set for
the given Location.
|
static void |
WarningPropertyUtil.addPropertiesForLocation(WarningPropertySet<WarningProperty> propertySet,
ClassContext classContext,
org.apache.bcel.classfile.Method method,
int pc)
Add all relevant general warning properties to the given property set for
the given Location.
|
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.