Class FindHEmismatch

    • Field Detail

      • mapPattern

        static final java.util.regex.Pattern mapPattern
      • hashTablePattern

        static final java.util.regex.Pattern hashTablePattern
      • setPattern

        static final java.util.regex.Pattern setPattern
      • predicateOverAnInstance

        static final java.util.regex.Pattern predicateOverAnInstance
      • isApplicationClass

        boolean isApplicationClass
      • hasFields

        boolean hasFields
      • visibleOutsidePackage

        boolean visibleOutsidePackage
      • hasHashCode

        boolean hasHashCode
      • hasEqualsObject

        boolean hasEqualsObject
      • hashCodeIsAbstract

        boolean hashCodeIsAbstract
      • equalsObjectIsAbstract

        boolean equalsObjectIsAbstract
      • equalsMethodIsInstanceOfEquals

        boolean equalsMethodIsInstanceOfEquals
      • hasCompareToObject

        boolean hasCompareToObject
      • hasCompareToBridgeMethod

        boolean hasCompareToBridgeMethod
      • hasEqualsSelf

        boolean hasEqualsSelf
      • hasEqualsOther

        boolean hasEqualsOther
      • hasCompareToSelf

        boolean hasCompareToSelf
      • extendsObject

        boolean extendsObject
      • nonHashableClasses

        final java.util.HashSet<java.lang.String> nonHashableClasses
    • Constructor Detail

      • FindHEmismatch

        public FindHEmismatch​(BugReporter bugReporter)
    • Method Detail

      • isHashableClassName

        public boolean isHashableClassName​(java.lang.String dottedClassName)
      • visitAfter

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

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

        public boolean shouldVisitCode​(org.apache.bcel.classfile.Code obj)
        Description copied from class: BytecodeScanningDetector
        Check see if the Code for this method should be visited.
        Overrides:
        shouldVisitCode in class BytecodeScanningDetector
        Parameters:
        obj - Code attribute
        Returns:
        true if the Code should be visited
      • opcode

        public static int opcode​(byte[] code,
                                 int offset)
      • visit

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

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

        org.apache.bcel.classfile.Method findMethod​(org.apache.bcel.classfile.JavaClass clazz,
                                                    java.lang.String name,
                                                    java.lang.String sig)
      • check

        private void check​(int pos)
      • findHashedClassInSignature

        @CheckForNull
        @DottedClassName
        java.lang.String findHashedClassInSignature​(java.lang.String sig)
      • visit

        public void visit​(org.apache.bcel.classfile.Signature obj)
        Overrides:
        visit in class BetterVisitor
      • 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