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