package sfBugs;

import edu.umd.cs.findbugs.annotations.ExpectWarning;
import edu.umd.cs.findbugs.annotations.NoWarning;

public class Bug3073124 {

    void methodA() {
    }
    void methodB() {
    }

    static class Derived extends Bug3073124 {
        boolean condition;

        @ExpectWarning("IL_INFINITE_RECURSIVE_LOOP")
        void methodA() {

            if (condition) {
                methodA();
            }
        }

        // Corrected code
        @NoWarning("IL_INFINITE_RECURSIVE_LOOP")
        void methodB() {

            if (condition) {
                super.methodB();
            }
        }
    }
}

@@ -165,24 +165,25 @@
 A() %7B%0A    %7D%0A
+%0A
     void met
@@ -194,24 +194,62 @@
 () %7B%0A    %7D%0A%0A
+    void testLoop(String b) %7B%0A%0A    %7D%0A%0A
     static c
@@ -653,20 +653,308 @@
 %7D%0A        %7D%0A
+%0A        void testLoop(String b) %7B%0A            boolean test = evaluate();%0A            if (test) %7B%0A                testLoop(%22dfdsfsd%22);%0A            %7D else %7B%0A                super.testLoop(%22dsdsd%22);%0A            %7D%0A%0A        %7D%0A%0A        boolean evaluate() %7B%0A            return true;%0A        %7D%0A%0A
     %7D%0A%7D%0A

add code as in bug report