It is possible to incorporate FindBugs results in the TICS output
for JAVA files. FindBugs is free software, distributed under the
terms of the Lesser GNU Public
License
The integration of FindBugs within TICS is based on
FindBugs version 1.3.7. This version is downloadable via the TICS
download site. It is not recommended to use another version than this
version.
FindBugs integration, the following prerequisites
must be met:
FindBugs must be installed on the TICS file server in
chk\findbugs.FindBugs
works on the project's class files.FindBugs has to be configured correctly, see below.
Since Findbugs acts on the classfiles of a project,
it needs to be instructed with several options, like the classpath for the
project. This information is extracted by TICS from the project's build.
Currently, for JAVA only the
BUILDTYPE Ant
is supported by TICS. Since no preprocessing has to be performed, the compiler
None should be specified for the Ant buildtype.
'JAVA' => {
...
'BUILDTYPE' => [
{ 'name' => 'Ant', 'compiler' => [ 'None' ] },
],
...
}
FindBugs has the possibility to detect many different bug patterns.
All these patterns are listed within the FindBugs installation in
the following file FindBugs/doc/allBugDescriptions.html.
The user is free to choose any set of bug patterns that should be reported by
TICS. As with other codecheckers, this is done by editing the
RULES.txt and the IMPL.txt files within the
cfg directory on the TICS FileServer. The user is free to choose
the rule's identifier, severity level, category and synopsis in the
RULES.txt. How TICS invokes FindBugs is configured
in the IMPL.txt. In this file, the "long bug codes" of
FindBugs should be used. These "long bug codes" are the strings
between brackets after the bug pattern description in the
allBugDescriptions.html page. A short example of the IMPL.txt
file is given below:
FB#001 FindBugs LI_LAZY_INIT_UPDATE_STATIC FB#002 FindBugs REC_CATCH_EXCEPTION FB#003 FindBugs DM_EXIT FB#004 FindBugs DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED FB#005 FindBugs EQ_COMPARETO_USE_OBJECT_EQUALS
A standard FindBugs rule configuration is available in the
form of a IMPL.txt, RULES.txt pair.
See
the FindBugs website for a list of all FindBugs warnings.