Findbugs和比较

Rob*_*win 7 java static-analysis findbugs

我最近开始在我正在做的java构建中使用findbugs静态分析工具.第一份报告带来了大量高优先级警告.作为一个迷恋型人,我已经准备好全力以赴.但是,我必须遗漏一些东西.在比较事情时,我得到了大部分警告.如下面的代码:

   public void setSpacesPerLevel(int value)
   {
      if( value >= 0)
      {
         spacesPerLevel = value;
      }
      else
      {
         spacesPerLevel = 0;
      }
   }
Run Code Online (Sandbox Code Playgroud)

在读取的if语句中生成高优先级警告.

File:Indenter.java,Line:60,Type:BIT_AND_ZZ,Priority:High,Category:CORRECTNESS检查sample.Indenter.setSpacesPerLevel(int)中的((...)&0)== 0

我将int与int进行比较,看起来很常见.我通过类似的简单比较得到了相当多的错误.

对于看似简单的代码块,我有很多其他高优先级警告.我在这里错过了什么吗?我意识到静态分析会产生误报,但我所看到的错误似乎过于微不足道.

这个让我也摸不着头脑.

    for(int spaces = 0;spaces < spacesPerLevel;spaces++)
    {
       result = result.concat(" ");
    }
Run Code Online (Sandbox Code Playgroud)

这给出了以下findbugs警告:

File: Indenter.java, Line: 160, Type: IL_INFINITE_LOOP, Priority: High, Category: CORRECTNESS

There is an apparent infinite loop in sample.Indenter.indent()

This loop doesn't seem to have a way to terminate (other than by perhaps throwing an exception).
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

所以基本上我有一些文件和50-60个高优先级警告类似于上面的那些.我正在使用findbugs 1.3.9并从findbugs ant任务中调用它

更新: 我有一个由hudson服务器执行的构建,并且代码覆盖了Clover的代码.当我关闭它时,我的所有高优先级警告都消失了.这是有道理的.感谢您的反馈.

Rob*_*win 7

更新:我有一个由hudson服务器执行的构建,并且代码覆盖了Clover的代码.当我关闭它时,我的所有高优先级警告都消失了.这是有道理的.感谢您的反馈.