|
|
Docs and Info |
|
|
|
|
|
|
|
|
|
|
|
|
|
Development |
|
|
|
|
|
|
|
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
|