barfuin
barfuin

Reputation: 17494

FindBugs shows only the first occurrence of a bug

FindBugs seems to show only the first occurrence of a particular bug in each method. This occurs in Eclipse as well as in the FindBugs stand-alone client.
How can I configure FindBugs to show all occurrences?

Example:

import javax.annotation.Nonnull;

public class Bar
{
    public void meth(@Nonnull final String pArg) {
        System.out.println(pArg);
    }

    public void foo() {
        String s = null;
        meth(s);      // <<== bug marker here (NP_NONNULL_PARAM_VIOLATION)
        meth(null);   // no bug marker here
        meth(s);      // and none here either  :-(
    }
}

Im am using the latest FindBugs 2.0.2 Eclipse plugin (with Eclipse 3.6).

The problem appears to depend on the bug pattern. For example, I see more than one hit per method with DLS_DEAD_LOCAL_STORE, but not with NP_NONNULL_PARAM_VIOLATION. The latter is shown above.

Thanks!

Upvotes: 1

Views: 262

Answers (1)

Bananeweizen
Bananeweizen

Reputation: 22070

It seems that Findbugs only checks those lines of code for this specific error, which can actually be reached according to a control flow analysis. With your 3 method invocations, the first one leads to a NPE, therefore the second and third will never be reached.

There have been similar bug reports for previous versions: http://sourceforge.net/p/findbugs/bugs/980/

Upvotes: 2

Related Questions