FindBugs仅显示第一次出现的错误

时间:2013-02-23 13:38:27

标签: eclipse static-analysis findbugs

FindBugs似乎只显示每种方法中第一次出现特定错误。这发生在Eclipse以及FindBugs独立客户端中 如何配置FindBugs以显示所有次出现?

示例:

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  :-(
    }
}

我正在使用最新的FindBugs 2.0.2 Eclipse插件(使用Eclipse 3.6)。

问题似乎取决于错误模式。例如,我看到DLS_DEAD_LOCAL_STORE每个方法有多个匹配,但NP_NONNULL_PARAM_VIOLATION没有。后者如上所示。

谢谢!

1 个答案:

答案 0 :(得分:2)

似乎Findbugs只检查这些特定错误的代码行,实际上可以根据控制流分析来达到。使用3个方法调用,第一个方法调用NPE,因此永远不会达到第二个和第三个。

以前的版本有类似的错误报告:http://sourceforge.net/p/findbugs/bugs/980/