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的代码.当我关闭它时,我的所有高优先级警告都消失了.这是有道理的.感谢您的反馈.
| 归档时间: |
|
| 查看次数: |
1527 次 |
| 最近记录: |