Findbugs and comparing

Posted by Rob Goodwin on Stack Overflow See other posts from Stack Overflow or by Rob Goodwin
Published on 2010-06-01T15:56:09Z Indexed on 2010/06/01 16:03 UTC
Read the original article Hit count: 238

Filed under:
|
|

I recently started using the findbugs static analysis tool in a java build I was doing. The first report came back with loads of High Priority warnings. Being the obsessive type of person, I was ready to go knock them all out. However, I must be missing something. I get most of the warnings when comparing things. Such as the following code:

 public void setSpacesPerLevel(int value)
 {
   if( value >= 0)
   {
...

produces a high priority warning at the if statement that reads.

File: Indenter.java, Line: 60, Type: BIT_AND_ZZ, Priority: High, Category: CORRECTNESS Check to see if ((...) & 0) == 0 in sample.Indenter.setSpacesPerLevel(int)

I am comparing an int to an int, seems like a common thing. I get quite a few of that type of error with similar simple comparisons.

I have alot of other high priority warnings on what appears to be simple code blocks. Am I missing something here? I realize that static analysis can produce false positives, but the errors I am seeing seem too trivial of a case to be a false positive.

This one has me scratching my head as well.

 for(int spaces = 0;spaces < spacesPerLevel;spaces++){...

Which gives the following findbugs warning:

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).

Any ideas?

So basically I have a handful of files and 50-60 high priority warnings similar to the ones above. I am using findbugs 1.3.9 and calling it from the findbugs ant task

© Stack Overflow or respective owner

Related posts about java

Related posts about static-analysis