|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.umd.cs.findbugs.visitclass.BetterVisitor
edu.umd.cs.findbugs.visitclass.PreorderVisitor
edu.umd.cs.findbugs.visitclass.DismantleBytecode
edu.umd.cs.findbugs.BytecodeScanningDetector
edu.umd.cs.findbugs.detect.LockedFields
public class LockedFields
Field Summary | |
---|---|
private BugReporter |
bugReporter
|
private static boolean |
DEBUG
|
(package private) boolean |
doubleThisOnTopOfStack
|
(package private) java.util.HashSet<FieldAnnotation> |
fieldsRead
|
(package private) java.util.HashSet<FieldAnnotation> |
fieldsWritten
|
(package private) boolean |
inConstructor
|
(package private) java.util.HashSet<FieldAnnotation> |
localLocks
|
(package private) static java.lang.String[] |
names
|
(package private) boolean |
protectedMethod
|
(package private) java.util.HashSet<FieldAnnotation> |
publicFields
|
(package private) boolean |
publicMethod
|
(package private) static int |
READ_LOCKED
|
(package private) static int |
READ_UNLOCKED
|
(package private) int |
state
|
(package private) java.util.Map<FieldAnnotation,int[]> |
stats
|
(package private) boolean |
synchronizedMethod
|
(package private) boolean |
thisLocked
|
(package private) boolean |
thisLockingOnly
|
(package private) boolean |
thisOnTopOfStack
|
(package private) java.util.HashSet<FieldAnnotation> |
volatileOrFinalFields
|
(package private) static int |
WRITTEN_LOCKED
|
(package private) static int |
WRITTEN_UNLOCKED
|
(package private) java.util.HashSet<FieldAnnotation> |
writtenOutsideOfConstructor
|
Fields inherited from class edu.umd.cs.findbugs.visitclass.DismantleBytecode |
---|
codeBytes, lineNumberTable, M_BR, M_CP, M_INT, M_PAD, M_R, M_UINT, R_DOUBLE, R_FLOAT, R_INT, R_LONG, R_REF, registerKind |
Fields inherited from interface org.apache.bcel.Constants |
---|
AALOAD, AASTORE, ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ACCESS_NAMES, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ANEWARRAY_QUICK, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, ATTR_CODE, ATTR_CONSTANT_VALUE, ATTR_DEPRECATED, ATTR_EXCEPTIONS, ATTR_INNER_CLASSES, ATTR_LINE_NUMBER_TABLE, ATTR_LOCAL_VARIABLE_TABLE, ATTR_PMG, ATTR_SIGNATURE, ATTR_SOURCE_FILE, ATTR_STACK_MAP, ATTR_SYNTHETIC, ATTR_UNKNOWN, ATTRIBUTE_NAMES, BALOAD, BASTORE, BIPUSH, BREAKPOINT, CALOAD, CASTORE, CHECKCAST, CHECKCAST_QUICK, CLASS_TYPE_NAMES, CONSTANT_Class, CONSTANT_Double, CONSTANT_Fieldref, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodref, CONSTANT_Long, CONSTANT_Methodref, CONSTANT_NameAndType, CONSTANT_NAMES, CONSTANT_String, CONSTANT_Utf8, CONSTRUCTOR_NAME, CONSUME_STACK, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETFIELD_QUICK, GETFIELD_QUICK_W, GETFIELD2_QUICK, GETSTATIC, GETSTATIC_QUICK, GETSTATIC2_QUICK, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILLEGAL_OPCODE, ILLEGAL_TYPE, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMPDEP1, IMPDEP2, IMUL, INEG, INSTANCEOF, INSTANCEOF_QUICK, INT2BYTE, INT2CHAR, INT2SHORT, INTERFACES_IMPLEMENTED_BY_ARRAYS, INVOKEINTERFACE, INVOKEINTERFACE_QUICK, INVOKENONVIRTUAL, INVOKENONVIRTUAL_QUICK, INVOKESPECIAL, INVOKESTATIC, INVOKESTATIC_QUICK, INVOKESUPER_QUICK, INVOKEVIRTUAL, INVOKEVIRTUAL_QUICK, INVOKEVIRTUAL_QUICK_W, INVOKEVIRTUALOBJECT_QUICK, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, ITEM_Bogus, ITEM_Double, ITEM_Float, ITEM_InitObject, ITEM_Integer, ITEM_Long, ITEM_NAMES, ITEM_NewObject, ITEM_Null, ITEM_Object, IUSHR, IXOR, JSR, JSR_W, KNOWN_ATTRIBUTES, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_QUICK, LDC_W, LDC_W_QUICK, LDC2_W, LDC2_W_QUICK, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MAJOR, MAJOR_1_1, MAJOR_1_2, MAJOR_1_3, MAX_ACC_FLAG, MAX_BYTE, MAX_CODE_SIZE, MAX_CP_ENTRIES, MAX_SHORT, MINOR, MINOR_1_1, MINOR_1_2, MINOR_1_3, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, MULTIANEWARRAY_QUICK, NEW, NEW_QUICK, NEWARRAY, NO_OF_OPERANDS, NOP, OPCODE_NAMES, POP, POP2, PRODUCE_STACK, PUSH, PUTFIELD, PUTFIELD_QUICK, PUTFIELD_QUICK_W, PUTFIELD2_QUICK, PUTSTATIC, PUTSTATIC_QUICK, PUTSTATIC2_QUICK, RESERVED, RET, RETURN, SALOAD, SASTORE, SHORT_TYPE_NAMES, SIPUSH, STATIC_INITIALIZER_NAME, SWAP, SWITCH, T_ADDRESS, T_ARRAY, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_OBJECT, T_REFERENCE, T_SHORT, T_UNKNOWN, T_VOID, TABLESWITCH, TYPE_NAMES, TYPE_OF_OPERANDS, UNDEFINED, UNPREDICTABLE, WIDE |
Fields inherited from interface edu.umd.cs.findbugs.Detector |
---|
EXP_PRIORITY, HIGH_PRIORITY, LOW_PRIORITY, NORMAL_PRIORITY |
Constructor Summary | |
---|---|
LockedFields(BugReporter bugReporter)
|
Method Summary | |
---|---|
void |
report()
This method is called after all classes to be visited. |
void |
sawOpcode(int seen)
|
private void |
updateStats(java.util.Set<FieldAnnotation> fields,
int mode)
|
void |
visit(org.apache.bcel.classfile.Code obj)
|
void |
visit(org.apache.bcel.classfile.Field obj)
|
void |
visit(org.apache.bcel.classfile.JavaClass obj)
|
void |
visit(org.apache.bcel.classfile.Method obj)
|
Methods inherited from class edu.umd.cs.findbugs.BytecodeScanningDetector |
---|
getAnalysisContext, getClassContext, setAnalysisContext, visitClassContext |
Methods inherited from class edu.umd.cs.findbugs.visitclass.DismantleBytecode |
---|
getBranchFallThrough, getBranchOffset, getBranchTarget, getClassConstantOperand, getConstantRefOperand, getDefaultSwitchOffset, getDottedClassConstantOperand, getDottedSigConstantOperand, getIntConstant, getNameConstantOperand, getPC, getRefConstantOperand, getRefFieldIsStatic, getRegisterOperand, getSigConstantOperand, getStringConstantOperand, getSwitchLabels, getSwitchOffsets, sawClass, sawDouble, sawField, sawFloat, sawIMethod, sawInt, sawLong, sawMethod, sawOffset, sawRegister, sawString |
Methods inherited from class edu.umd.cs.findbugs.visitclass.BetterVisitor |
---|
report, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitCodeException, visitConstantClass, visitConstantDouble, visitConstantFieldref, visitConstantFloat, visitConstantInteger, visitConstantInterfaceMethodref, visitConstantLong, visitConstantMethodref, visitConstantNameAndType, visitConstantString, visitConstantUtf8, visitConstantValue, visitDeprecated, visitExceptionTable, visitField, visitInnerClass, visitLineNumber, visitLocalVariable, visitMethod, visitSignature, visitSourceFile, visitStackMap, visitStackMapEntry, visitSynthetic, visitUnknown |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final boolean DEBUG
java.util.HashSet<FieldAnnotation> volatileOrFinalFields
java.util.HashSet<FieldAnnotation> fieldsWritten
java.util.HashSet<FieldAnnotation> fieldsRead
java.util.HashSet<FieldAnnotation> localLocks
java.util.HashSet<FieldAnnotation> publicFields
java.util.HashSet<FieldAnnotation> writtenOutsideOfConstructor
boolean synchronizedMethod
boolean publicMethod
boolean protectedMethod
boolean inConstructor
java.util.Map<FieldAnnotation,int[]> stats
int state
boolean thisOnTopOfStack
boolean doubleThisOnTopOfStack
boolean thisLocked
boolean thisLockingOnly
private BugReporter bugReporter
static final int READ_LOCKED
static final int WRITTEN_LOCKED
static final int READ_UNLOCKED
static final int WRITTEN_UNLOCKED
static final java.lang.String[] names
Constructor Detail |
---|
public LockedFields(BugReporter bugReporter)
Method Detail |
---|
private void updateStats(java.util.Set<FieldAnnotation> fields, int mode)
public void visit(org.apache.bcel.classfile.JavaClass obj)
visit
in class BetterVisitor
public void visit(org.apache.bcel.classfile.Field obj)
visit
in class BetterVisitor
public void visit(org.apache.bcel.classfile.Method obj)
visit
in class BetterVisitor
public void visit(org.apache.bcel.classfile.Code obj)
visit
in class DismantleBytecode
public void sawOpcode(int seen)
sawOpcode
in class DismantleBytecode
public void report()
Detector
report
in interface Detector
report
in class BytecodeScanningDetector
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |