FindBugs
 
Docs and Info
Fact sheet
Manual (en)
Manual (ja)
FAQ
Bug descriptions
Mailing lists
Documents and Publications
Links
 
Downloads
 
FindBugs Swag
 
Development
Reporting bugs
Contributing
Dev team
Change log
SF project page
Browse source

FindBugs logo UMD logo

FindBugs - Find Bugs in Java Programs

This is the web page for FindBugs, a program which looks for bugs in Java code.  It is free software, distributed under the terms of the Lesser GNU Public License.

FindBugs requires JRE (or JDK) 1.4.0 or later to run.  However, it can analyze programs compiled for any version of Java.

The current version of FindBugs is 0.9.1, released on June 15, 2005.

FindBugs is beta quality software.  You may find bugs in it, and the features and source code may change significantly in future releases.  We are very interested in getting feedback on how to improve FindBugs.  Send your comments to daveho@cs.umd.edu.

Sample output

As an example of the kind of issues FindBugs can identify, here is the output of FindBugs on Apache Jakarta Commons Modeler.

Try FindBugs now on your project!

Using Java Web Start you can try The GUI version of FindBugs now on your project. As long as you have a 1.4 or better JRE installed, you can run FindBugs now by clicking here.

News

Changes since version 0.9.0:

  • Fixed dependence on JRE 1.5: all features should work on JRE 1.4 again
  • Fixed -effort command line option handling for Swing GUI
  • Fixed conserveSpace and workHard attributes int Ant task
  • Added support for effort attribute in Ant task

Changes since version 0.8.8:

  • XMLFactoryBypass detector to find direct allocation of xml class implementations (Dave Brosius)
  • InefficientMemberAccess detector to find accesses to owning class private members (Dave Brosius)
  • DuplicateBranches detector checks switch statements too (Dave Brosius)
  • FindBugs available from findbugs.sourceforge.net as Java Web Start application (Dave Brosius)
  • Updated Japanese bug message translations (Shisei Hanai)
  • Improved bug detail message for covariant equals() (Shisei Hanai)
  • Modeling of instanceof checks is now enabled by default, making the bad cast detector much more useful (Bill Pugh, David Hovemeyer)
  • Support for detector ordering constraints in plugin descriptor (David Hovemeyer)
  • Simpler option to control analysis effort: -effort:value, where value is one of min, default, or max (David Hovemeyer)
  • Using -effort:max, FindNullDeref checks for null arguments passed to methods which dereference them unconditionally (David Hovemeyer)
  • FindNullDeref checks @Null and @NonNull annotations for parameters and return values (David Hovemeyer)

Older versions...

Sponsors

This work has been supported by the National Science Foundation grants ASC9720199 and CCR-0098162, and by an IBM Eclipse Innovation award.


Send comments to daveho@cs.umd.edu

SourceForge.net Logo