Class FindRefComparison

  • All Implemented Interfaces:
    ExtendedTypes, Detector, Priorities

    public class FindRefComparison
    extends java.lang.Object
    implements Detector, ExtendedTypes
    Find suspicious reference comparisons. This includes:
    • Strings and other java.lang objects compared by reference equality
    • Calls to equals(Object) where the argument is a different type than the receiver object
    • Field Detail

      • DEBUG

        private static final boolean DEBUG
      • REPORT_ALL_REF_COMPARISONS

        private static final boolean REPORT_ALL_REF_COMPARISONS
        See Also:
        Constant Field Values
      • BASE_ES_PRIORITY

        private static final int BASE_ES_PRIORITY
      • DEFAULT_SUSPICIOUS_SET

        @StaticConstant
        private static final java.util.HashSet<java.lang.String> DEFAULT_SUSPICIOUS_SET
        Classes that are suspicious if compared by reference.
      • invokeInstanceSet

        private static final java.util.BitSet invokeInstanceSet
        Set of opcodes that invoke instance methods on an object.
      • prescreenSet

        private static final java.util.BitSet prescreenSet
        Set of bytecodes using for prescreening.
      • STRING_SIGNATURE

        private static final java.lang.String STRING_SIGNATURE
        See Also:
        Constant Field Values
      • dynamicStringTypeInstance

        private static final org.apache.bcel.generic.Type dynamicStringTypeInstance
      • staticStringTypeInstance

        private static final org.apache.bcel.generic.Type staticStringTypeInstance
      • emptyStringTypeInstance

        private static final org.apache.bcel.generic.Type emptyStringTypeInstance
      • parameterStringTypeInstance

        private static final org.apache.bcel.generic.Type parameterStringTypeInstance
      • suspiciousSet

        private final java.util.Set<java.lang.String> suspiciousSet
      • testingEnabled

        private final boolean testingEnabled
      • comparedForEqualityInThisMethod

        private java.util.Map<java.lang.String,​java.lang.Integer> comparedForEqualityInThisMethod
    • Constructor Detail

      • FindRefComparison

        public FindRefComparison​(BugReporter bugReporter)