Class UnreadFields

    • Field Detail

      • DEBUG

        private static final boolean DEBUG
      • INITIALIZER_ANNOTATIONS

        private static final java.util.List<java.lang.String> INITIALIZER_ANNOTATIONS
      • READ_BY_FRAMEWORK_ANNOTATIONS

        private static final java.util.List<ClassDescriptor> READ_BY_FRAMEWORK_ANNOTATIONS
        A list of annotations for fields that might be read by frameworks, even though they are private
      • hasNativeMethods

        boolean hasNativeMethods
      • isSerializable

        boolean isSerializable
      • sawSelfCallInConstructor

        boolean sawSelfCallInConstructor
      • publicOrProtectedConstructor

        boolean publicOrProtectedConstructor
      • anonymousClassAnnotation

        private final java.util.Map<java.lang.String,​java.util.List<BugAnnotation>> anonymousClassAnnotation
      • junitNestedAnnotation

        private final ClassDescriptor junitNestedAnnotation
      • count_aload_1

        int count_aload_1
      • previousOpcode

        private int previousOpcode
      • previousPreviousOpcode

        private int previousPreviousOpcode
      • seenInvokeStatic

        boolean seenInvokeStatic
      • seenMonitorEnter

        boolean seenMonitorEnter
      • pendingGetField

        XField pendingGetField
      • saState

        int saState
      • dontComplainAbout

        static java.util.regex.Pattern dontComplainAbout
      • withinAnonymousClass

        static java.util.regex.Pattern withinAnonymousClass
    • Constructor Detail

      • UnreadFields

        public UnreadFields​(BugReporter bugReporter)
    • Method Detail

      • visit

        public void visit​(org.apache.bcel.classfile.JavaClass obj)
        Overrides:
        visit in class BetterVisitor
      • classHasParameter

        public static boolean classHasParameter​(org.apache.bcel.classfile.JavaClass obj)
      • visitAfter

        public void visitAfter​(org.apache.bcel.classfile.JavaClass obj)
        Overrides:
        visitAfter in class PreorderVisitor
      • visit

        public void visit​(org.apache.bcel.classfile.Field obj)
        Overrides:
        visit in class BetterVisitor
      • isSeleniumWebElement

        public static boolean isSeleniumWebElement​(java.lang.String signature)
      • visitAnnotation

        public void visitAnnotation​(java.lang.String annotationClass,
                                    java.util.Map<java.lang.String,​org.apache.bcel.classfile.ElementValue> map,
                                    boolean runtimeVisible)
        Description copied from class: AnnotationVisitor
        Visit annotation on a class, field or method
        Overrides:
        visitAnnotation in class AnnotationVisitor
        Parameters:
        annotationClass - class of annotation
        map - map from names to values
        runtimeVisible - true if annotation is runtime visible
      • isInjectionAttribute

        public static boolean isInjectionAttribute​(@DottedClassName
                                                   java.lang.String annotationClass)
      • visit

        public void visit​(org.apache.bcel.classfile.ConstantValue obj)
        Overrides:
        visit in class BetterVisitor
      • visit

        public void visit​(org.apache.bcel.classfile.Code obj)
        Overrides:
        visit in class DismantleBytecode
      • visit

        public void visit​(org.apache.bcel.classfile.Method obj)
        Overrides:
        visit in class BetterVisitor
      • isInitializerMethod

        private boolean isInitializerMethod()
        Returns:
        true if the method is considered to be an initializer method. Fields might be initialized outside of a constructor, for instance through JUnit's BeforeEach
      • 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.
        Specified by:
        report in interface Detector
        Overrides:
        report in class BytecodeScanningDetector
      • containsSpecialAnnotation

        public static boolean containsSpecialAnnotation​(java.util.Collection<AnnotationValue> annotationsToCheck)
        Checks whether the collection of annotations associated with a given element include annotations that indicate the "URF_UNREAD_FIELD" detector should be skipped.
        Parameters:
        annotationsToCheck - Collections of annotations associated with given element.
        Returns:
        If true, "URF_UNREAD_FIELD" detector should be ignored for given field.
        See Also:
        GitHub issue