|
|||||||||
| 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 BetterVisitorpublic void visit(org.apache.bcel.classfile.Field obj)
visit in class BetterVisitorpublic void visit(org.apache.bcel.classfile.Method obj)
visit in class BetterVisitorpublic void visit(org.apache.bcel.classfile.Code obj)
visit in class DismantleBytecodepublic void sawOpcode(int seen)
sawOpcode in class DismantleBytecodepublic void report()
Detector
report in interface Detectorreport in class BytecodeScanningDetector
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||