Findbugs v2.0.1 The Java Code Analyzer available
FindBugs looks for bugs in Java programs. It is based on the concept of bug patterns.
A bug pattern is a code idiom that is often an error. Bug patterns arise for a variety of reasons:
- Difficult language features
- Misunderstood API methods
- Misunderstood invariants when code is modified during maintenance
- Garden variety mistakes: typos, use of the wrong boolean operator
FindBugs uses static analysis to inspect Java bytecode for occurrences of bug patterns. Static analysis means that FindBugs can find bugs by simply inspecting a program’s code: executing the program is not necessary. This makes FindBugs very easy to use: in general, you should be able to use it to look for bugs in your code within a few minutes of downloading it. FindBugs works by analyzing Java bytecode (compiled class files), so you don’t even need the program’s source code to use it. Because its analysis is sometimes imprecise, FindBugs can report false warnings, which are warnings that do not indicate real errors. In practice, the rate of false warnings reported by FindBugs is less than 50%.
FindBugs supports a plugin architecture allowing anyone to add new bug detectors. The publications page contains links to articles describing how to write a new detector for FindBugs. If you are familiar with Java bytecode you can write a new FindBugs detector in as little as a few minutes.
Changes v2.01
- New bug patterns; in some cases, bugs previous reportd as other bug patterns are reported as instances of these new bugs patterns in order to make it easier for developers to understand the bug reporting
- Changes to fix false negatives for the following bug patterns: BC_UNCONFIRMED_CAST, EC_BAD_ARRAY_COMPARE, EQ_UNUSUAL, GC_UNRELATED_TYPES, and NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE.
- Changes to fix false positions for the following bugs patterns: DMI_DOH, EC_UNRELATED_TYPES, and SE_BAD_FIELD.
Note for rippers: Do not try to get the logo & text. Many little traps included