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
没有。后者如上所示。
谢谢!
答案 0 :(得分:2)
似乎Findbugs只检查这些特定错误的代码行,实际上可以根据控制流分析来达到。使用3个方法调用,第一个方法调用NPE,因此永远不会达到第二个和第三个。
以前的版本有类似的错误报告:http://sourceforge.net/p/findbugs/bugs/980/