| OLD | NEW |
| 1 <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> | 1 <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> |
| 2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | 2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" |
| 3 "file:../etc/docbook/docbookx.dtd" [ | 3 "../../etc/docbook/docbookx.dtd" [ |
| 4 <!ENTITY FindBugs "<application>FindBugs</application>"> | 4 <!ENTITY FindBugs "<application>FindBugs</application>"> |
| 5 <!ENTITY Ant "<application>Ant</application>"> | 5 <!ENTITY Ant "<application>Ant</application>"> |
| 6 <!ENTITY Saxon "<application>Saxon</application>"> | 6 <!ENTITY Saxon "<application>Saxon</application>"> |
| 7 <!ENTITY FBHome "<replaceable>$FINDBUGS_HOME</replaceable>"> | 7 <!ENTITY FBHome "<replaceable>$FINDBUGS_HOME</replaceable>"> |
| 8 <!ENTITY FBHomeWin "<replaceable>%FINDBUGS_HOME%</replaceable>"> | 8 <!ENTITY FBHomeWin "<replaceable>%FINDBUGS_HOME%</replaceable>"> |
| 9 <!ENTITY nbsp " "> | 9 <!ENTITY nbsp " "> |
| 10 ]> | 10 ]> |
| 11 | 11 |
| 12 <book lang="en" id="findbugs-manual"> | 12 <book lang="en" id="findbugs-manual"> |
| 13 | 13 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 37 This manual is licensed under the Creative Commons Attribution-NonCommercial-Sha
reAlike License. | 37 This manual is licensed under the Creative Commons Attribution-NonCommercial-Sha
reAlike License. |
| 38 To view a copy of this license, visit | 38 To view a copy of this license, visit |
| 39 <ulink url="http://creativecommons.org/licenses/by-nc-sa/1.0/">http://creativeco
mmons.org/licenses/by-nc-sa/1.0/</ulink> | 39 <ulink url="http://creativecommons.org/licenses/by-nc-sa/1.0/">http://creativeco
mmons.org/licenses/by-nc-sa/1.0/</ulink> |
| 40 or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, Californi
a 94305, USA. | 40 or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, Californi
a 94305, USA. |
| 41 </para> | 41 </para> |
| 42 <para> | 42 <para> |
| 43 The name FindBugs and the FindBugs logo are trademarked by the University of Mar
yland. | 43 The name FindBugs and the FindBugs logo are trademarked by the University of Mar
yland. |
| 44 </para> | 44 </para> |
| 45 </legalnotice> | 45 </legalnotice> |
| 46 | 46 |
| 47 <edition>2.0.3</edition> | 47 <edition>3.0.0</edition> |
| 48 | 48 |
| 49 <pubdate>17:16:15 EST, 22 November, 2013</pubdate> | 49 <pubdate>20:25:27 CDT, 06 July, 2014</pubdate> |
| 50 | 50 |
| 51 </bookinfo> | 51 </bookinfo> |
| 52 | 52 |
| 53 <!-- | 53 <!-- |
| 54 ************************************************************************** | 54 ************************************************************************** |
| 55 Introduction | 55 Introduction |
| 56 ************************************************************************** | 56 ************************************************************************** |
| 57 --> | 57 --> |
| 58 | 58 |
| 59 <chapter id="introduction"> | 59 <chapter id="introduction"> |
| 60 <title>Introduction</title> | 60 <title>Introduction</title> |
| 61 | 61 |
| 62 <para> &FindBugs;™ is a program to find bugs in Java programs. It looks f
or instances | 62 <para> &FindBugs;™ is a program to find bugs in Java programs. It looks f
or instances |
| 63 of "bug patterns" --- code instances that are likely to be errors.</para> | 63 of "bug patterns" --- code instances that are likely to be errors.</para> |
| 64 | 64 |
| 65 <para> This document describes version 2.0.3 of &FindBugs;.We | 65 <para> This document describes version 3.0.0 of &FindBugs;.We |
| 66 are very interested in getting your feedback on &FindBugs;. Please visit | 66 are very interested in getting your feedback on &FindBugs;. Please visit |
| 67 the <ulink url="http://findbugs.sourceforge.net">&FindBugs; web page</ulink> for | 67 the <ulink url="http://findbugs.sourceforge.net">&FindBugs; web page</ulink> for |
| 68 the latest information on &FindBugs;, contact information, and support resources
such | 68 the latest information on &FindBugs;, contact information, and support resources
such |
| 69 as information about the &FindBugs; mailing lists.</para> | 69 as information about the &FindBugs; mailing lists.</para> |
| 70 | 70 |
| 71 <sect1> | 71 <sect1> |
| 72 <title>Requirements</title> | 72 <title>Requirements</title> |
| 73 <para> To use &FindBugs;, you need a runtime environment compatible with | 73 <para> To use &FindBugs;, you need a runtime environment compatible with |
| 74 <ulink url="http://java.sun.com/j2se">Java 2 Standard Edition</ulink>, version 1
.5 or later. | 74 <ulink url="http://java.sun.com/j2se">Java 2 Standard Edition</ulink>, version 1
.5 or later. |
| 75 &FindBugs; is platform independent, and is known to run on GNU/Linux, Windows, a
nd | 75 &FindBugs; is platform independent, and is known to run on GNU/Linux, Windows, a
nd |
| (...skipping 17 matching lines...) Expand all Loading... |
| 93 <para> | 93 <para> |
| 94 This chapter explains how to install &FindBugs;. | 94 This chapter explains how to install &FindBugs;. |
| 95 </para> | 95 </para> |
| 96 | 96 |
| 97 <sect1> | 97 <sect1> |
| 98 <title>Extracting the Distribution</title> | 98 <title>Extracting the Distribution</title> |
| 99 | 99 |
| 100 <para> | 100 <para> |
| 101 The easiest way to install &FindBugs; is to download a binary distribution. | 101 The easiest way to install &FindBugs; is to download a binary distribution. |
| 102 Binary distributions are available in | 102 Binary distributions are available in |
| 103 <ulink url="http://prdownloads.sourceforge.net/findbugs/findbugs-2.0.3.tar.gz?do
wnload">gzipped tar format</ulink> and | 103 <ulink url="http://prdownloads.sourceforge.net/findbugs/findbugs-3.0.0.tar.gz?do
wnload">gzipped tar format</ulink> and |
| 104 <ulink url="http://prdownloads.sourceforge.net/findbugs/findbugs-2.0.3.zip?downl
oad">zip format</ulink>. | 104 <ulink url="http://prdownloads.sourceforge.net/findbugs/findbugs-3.0.0.zip?downl
oad">zip format</ulink>. |
| 105 Once you have downloaded a binary distribution, extract it into a directory of y
our choice. | 105 Once you have downloaded a binary distribution, extract it into a directory of y
our choice. |
| 106 </para> | 106 </para> |
| 107 | 107 |
| 108 <para> | 108 <para> |
| 109 Extracting a gzipped tar format distribution: | 109 Extracting a gzipped tar format distribution: |
| 110 <screen> | 110 <screen> |
| 111 <prompt>$ </prompt><command>gunzip -c findbugs-2.0.3.tar.gz | tar xvf -</command
> | 111 <prompt>$ </prompt><command>gunzip -c findbugs-3.0.0.tar.gz | tar xvf -</command
> |
| 112 </screen> | 112 </screen> |
| 113 </para> | 113 </para> |
| 114 | 114 |
| 115 <para> | 115 <para> |
| 116 Extracting a zip format distribution: | 116 Extracting a zip format distribution: |
| 117 <screen> | 117 <screen> |
| 118 <prompt>C:\Software></prompt><command>unzip findbugs-2.0.3.zip</command> | 118 <prompt>C:\Software></prompt><command>unzip findbugs-3.0.0.zip</command> |
| 119 </screen> | 119 </screen> |
| 120 </para> | 120 </para> |
| 121 | 121 |
| 122 <para> | 122 <para> |
| 123 Usually, extracting a binary distribution will create a directory ending in | 123 Usually, extracting a binary distribution will create a directory ending in |
| 124 <filename class="directory">findbugs-2.0.3</filename>. For example, if you extra
cted | 124 <filename class="directory">findbugs-3.0.0</filename>. For example, if you extra
cted |
| 125 the binary distribution from the <filename class="directory">C:\Software</filena
me> | 125 the binary distribution from the <filename class="directory">C:\Software</filena
me> |
| 126 directory, then the &FindBugs; software will be extracted into the directory | 126 directory, then the &FindBugs; software will be extracted into the directory |
| 127 <filename class="directory">C:\Software\findbugs-2.0.3</filename>. | 127 <filename class="directory">C:\Software\findbugs-3.0.0</filename>. |
| 128 This directory is the &FindBugs; home directory. We'll refer to it as | 128 This directory is the &FindBugs; home directory. We'll refer to it as |
| 129 &FBHome; (or &FBHomeWin; for Windows) throughout this manual. | 129 &FBHome; (or &FBHomeWin; for Windows) throughout this manual. |
| 130 </para> | 130 </para> |
| 131 </sect1> | 131 </sect1> |
| 132 | 132 |
| 133 </chapter> | 133 </chapter> |
| 134 | 134 |
| 135 <!-- | 135 <!-- |
| 136 ************************************************************************** | 136 ************************************************************************** |
| 137 Compiling FindBugs from Source | 137 Compiling FindBugs from Source |
| (...skipping 10 matching lines...) Expand all Loading... |
| 148 </para> | 148 </para> |
| 149 | 149 |
| 150 <sect1> | 150 <sect1> |
| 151 <title>Prerequisites</title> | 151 <title>Prerequisites</title> |
| 152 | 152 |
| 153 <para> | 153 <para> |
| 154 To compile &FindBugs; from source, you will need the following: | 154 To compile &FindBugs; from source, you will need the following: |
| 155 <itemizedlist> | 155 <itemizedlist> |
| 156 <listitem> | 156 <listitem> |
| 157 <para> | 157 <para> |
| 158 The <ulink url="http://prdownloads.sourceforge.net/findbugs/findbugs-2.0.3
-source.zip?download" | 158 The <ulink url="http://prdownloads.sourceforge.net/findbugs/findbugs-3.0.0
-source.zip?download" |
| 159 >&FindBugs; source distribution</ulink> | 159 >&FindBugs; source distribution</ulink> |
| 160 </para> | 160 </para> |
| 161 </listitem> | 161 </listitem> |
| 162 <listitem> | 162 <listitem> |
| 163 <para> | 163 <para> |
| 164 <ulink url="http://java.sun.com/j2se/">JDK 1.5.0 or later</ulink> | 164 <ulink url="http://java.sun.com/j2se/">JDK 1.5.0 or later</ulink> |
| 165 </para> | 165 </para> |
| 166 </listitem> | 166 </listitem> |
| 167 <listitem> | 167 <listitem> |
| 168 <para> | 168 <para> |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 | 211 |
| 212 </sect1> | 212 </sect1> |
| 213 | 213 |
| 214 <sect1> | 214 <sect1> |
| 215 <title>Extracting the Source Distribution</title> | 215 <title>Extracting the Source Distribution</title> |
| 216 <para> | 216 <para> |
| 217 After you download the source distribution, you'll need to extract it into | 217 After you download the source distribution, you'll need to extract it into |
| 218 a working directory. A typical command to do this is: | 218 a working directory. A typical command to do this is: |
| 219 | 219 |
| 220 <screen> | 220 <screen> |
| 221 <prompt>$ </prompt><command>unzip findbugs-2.0.3-source.zip</command> | 221 <prompt>$ </prompt><command>unzip findbugs-3.0.0-source.zip</command> |
| 222 </screen> | 222 </screen> |
| 223 | 223 |
| 224 </para> | 224 </para> |
| 225 </sect1> | 225 </sect1> |
| 226 | 226 |
| 227 <sect1> | 227 <sect1> |
| 228 <title>Modifying <filename>local.properties</filename></title> | 228 <title>Modifying <filename>local.properties</filename></title> |
| 229 <para> | 229 <para> |
| 230 If you intend to build the FindBugs documentation, | 230 If you intend to build the FindBugs documentation, |
| 231 you will need to modify the <filename>local.properties</filename> file | 231 you will need to modify the <filename>local.properties</filename> file |
| (...skipping 700 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 932 <listitem> | 932 <listitem> |
| 933 <para> | 933 <para> |
| 934 Set the auxiliary classpath for analysis. This classpath should include all | 934 Set the auxiliary classpath for analysis. This classpath should include all |
| 935 jar files and directories containing classes that are part of the program | 935 jar files and directories containing classes that are part of the program |
| 936 being analyzed but you do not want to have analyzed for bugs. | 936 being analyzed but you do not want to have analyzed for bugs. |
| 937 </para> | 937 </para> |
| 938 </listitem> | 938 </listitem> |
| 939 </varlistentry> | 939 </varlistentry> |
| 940 | 940 |
| 941 <varlistentry> | 941 <varlistentry> |
| 942 <term><command>-auxclasspathFromInput</command> </term> |
| 943 <listitem> |
| 944 <para> |
| 945 Read the auxiliary classpath for analysis from standard input, each line add
s new |
| 946 entry to the auxiliary classpath for analysis. |
| 947 </para> |
| 948 </listitem> |
| 949 </varlistentry> |
| 950 |
| 951 <varlistentry> |
| 952 <term><command>-auxclasspathFromFile</command> <replaceable>filepath</replacea
ble></term> |
| 953 <listitem> |
| 954 <para> |
| 955 Read the auxiliary classpath for analysis from file, each line adds new |
| 956 entry to the auxiliary classpath for analysis. |
| 957 </para> |
| 958 </listitem> |
| 959 </varlistentry> |
| 960 |
| 961 <varlistentry> |
| 962 <term><command>-analyzeFromFile</command> <replaceable>filepath</replaceable><
/term> |
| 963 <listitem> |
| 964 <para> |
| 965 Read the files to analyze from file, each line adds new |
| 966 entry to the classpath for analysis. |
| 967 </para> |
| 968 </listitem> |
| 969 </varlistentry> |
| 970 |
| 971 <varlistentry> |
| 942 <term><command>-userPrefs</command> <replaceable>edu.umd.cs.findbugs.core.pref
s</replaceable></term> | 972 <term><command>-userPrefs</command> <replaceable>edu.umd.cs.findbugs.core.pref
s</replaceable></term> |
| 943 <listitem> | 973 <listitem> |
| 944 <para> | 974 <para> |
| 945 Set the path of the user preferences file to use, which might override some
of the options abobe. | 975 Set the path of the user preferences file to use, which might override some
of the options abobe. |
| 946 Specifying <literal>userPrefs</literal> as first argument would mean some la
ter | 976 Specifying <literal>userPrefs</literal> as first argument would mean some la
ter |
| 947 options will override them, as last argument would mean they will override s
ome previous options). | 977 options will override them, as last argument would mean they will override s
ome previous options). |
| 948 This rationale behind this option is to reuse FindBugs Eclipse project setti
ngs for command | 978 This rationale behind this option is to reuse FindBugs Eclipse project setti
ngs for command |
| 949 line execution. | 979 line execution. |
| 950 </para> | 980 </para> |
| 951 </listitem> | 981 </listitem> |
| (...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1409 without any package qualification. By default, all detectors which are | 1439 without any package qualification. By default, all detectors which are |
| 1410 not disabled by default are run. | 1440 not disabled by default are run. |
| 1411 </para> | 1441 </para> |
| 1412 </listitem> | 1442 </listitem> |
| 1413 </varlistentry> | 1443 </varlistentry> |
| 1414 | 1444 |
| 1415 <varlistentry> | 1445 <varlistentry> |
| 1416 <term><literal>omitVisitors</literal></term> | 1446 <term><literal>omitVisitors</literal></term> |
| 1417 <listitem> | 1447 <listitem> |
| 1418 <para> | 1448 <para> |
| 1419 Optional attribute. It is like the <literal>visitors</literal> attribute
, | 1449 Optional attribute. It specifies a comma-separated list of bug detectors. |
| 1450 It is like the <literal>visitors</literal> attribute, |
| 1420 except it specifies detectors which will <emphasis>not</emphasis> be run. | 1451 except it specifies detectors which will <emphasis>not</emphasis> be run. |
| 1421 </para> | 1452 </para> |
| 1422 </listitem> | 1453 </listitem> |
| 1423 </varlistentry> | 1454 </varlistentry> |
| 1424 | 1455 |
| 1425 <varlistentry> | 1456 <varlistentry> |
| 1457 <term><literal>chooseVisitors</literal></term> |
| 1458 <listitem> |
| 1459 <para> |
| 1460 Optional attribute. It specifies a comma-separated list of bug detectors |
| 1461 prefixed with "+" or "-" to selectively enable/disable them. |
| 1462 </para> |
| 1463 </listitem> |
| 1464 </varlistentry> |
| 1465 |
| 1466 <varlistentry> |
| 1426 <term><literal>excludeFilter</literal></term> | 1467 <term><literal>excludeFilter</literal></term> |
| 1427 <listitem> | 1468 <listitem> |
| 1428 <para> | 1469 <para> |
| 1429 Optional attribute. It specifies the filename of a filter specifying bug
s | 1470 Optional attribute. It specifies the filename of a filter specifying bug
s |
| 1430 to exclude from being reported. See <xref linkend="filter" />. | 1471 to exclude from being reported. See <xref linkend="filter" />. |
| 1431 </para> | 1472 </para> |
| 1432 </listitem> | 1473 </listitem> |
| 1433 </varlistentry> | 1474 </varlistentry> |
| 1434 | 1475 |
| 1435 <varlistentry> | 1476 <varlistentry> |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1532 <para> | 1573 <para> |
| 1533 Optional attribute. Set the path of the user preferences file to u
se, which might override some of the options abobe. | 1574 Optional attribute. Set the path of the user preferences file to u
se, which might override some of the options abobe. |
| 1534 Specifying <literal>userPreferencesFile</literal> as first argumen
t would mean some later | 1575 Specifying <literal>userPreferencesFile</literal> as first argumen
t would mean some later |
| 1535 options will override them, as last argument would mean they will
override some previous options). | 1576 options will override them, as last argument would mean they will
override some previous options). |
| 1536 This rationale behind this option is to reuse FindBugs Eclipse pro
ject settings for command | 1577 This rationale behind this option is to reuse FindBugs Eclipse pro
ject settings for command |
| 1537 line execution. | 1578 line execution. |
| 1538 </para> | 1579 </para> |
| 1539 </listitem> | 1580 </listitem> |
| 1540 </varlistentry> | 1581 </varlistentry> |
| 1541 | 1582 |
| 1583 <varlistentry> |
| 1584 <term><literal>nested</literal></term> |
| 1585 <listitem> |
| 1586 <para> |
| 1587 Optional attribute which enables or disables scanning of nested ja
r and zip files found in |
| 1588 the list of files and directories to be analyzed. |
| 1589 By default, scanning of nested jar/zip files is enabled. |
| 1590 </para> |
| 1591 </listitem> |
| 1592 </varlistentry> |
| 1593 |
| 1542 </variablelist> | 1594 </variablelist> |
| 1543 | 1595 |
| 1544 | 1596 |
| 1545 </para> | 1597 </para> |
| 1546 | 1598 |
| 1547 <!-- | 1599 <!-- |
| 1548 | 1600 |
| 1549 --> | 1601 --> |
| 1550 | 1602 |
| 1551 </sect1> | 1603 </sect1> |
| 1552 | 1604 |
| 1553 </chapter> | 1605 </chapter> |
| 1554 | 1606 |
| 1555 <!-- | 1607 <!-- |
| 1556 ************************************************************************** | 1608 ************************************************************************** |
| 1557 Using the FindBugs Eclipse plugin | 1609 Using the FindBugs Eclipse plugin |
| 1558 ************************************************************************** | 1610 ************************************************************************** |
| 1559 --> | 1611 --> |
| 1560 | 1612 |
| 1561 <chapter id="eclipse"> | 1613 <chapter id="eclipse"> |
| 1562 <title>Using the &FindBugs;™ Eclipse plugin</title> | 1614 <title>Using the &FindBugs;™ Eclipse plugin</title> |
| 1563 | 1615 |
| 1564 <para> | 1616 <para> |
| 1565 The FindBugs Eclipse plugin allows &FindBugs; to be used within | 1617 The FindBugs Eclipse plugin allows &FindBugs; to be used within |
| 1566 the <ulink url="http://www.eclipse.org/">Eclipse</ulink> IDE. | 1618 the <ulink url="http://www.eclipse.org/">Eclipse</ulink> IDE. |
| 1567 The FindBugs Eclipse plugin was generously contributed by Peter Friese. | 1619 The FindBugs Eclipse plugin was generously contributed by Peter Friese. |
| 1568 Phil Crosby and Andrei Loskutov contributed major improvements | 1620 Phil Crosby and Andrey Loskutov contributed major improvements |
| 1569 to the plugin. | 1621 to the plugin. |
| 1570 </para> | 1622 </para> |
| 1571 | 1623 |
| 1572 <sect1> | 1624 <sect1> |
| 1573 <title>Requirements</title> | 1625 <title>Requirements</title> |
| 1574 | 1626 |
| 1575 <para> | 1627 <para> |
| 1576 To use the &FindBugs; Plugin for Eclipse, you need Eclipse 3.3 or later, | 1628 To use the &FindBugs; Plugin for Eclipse, you need Eclipse 3.3 or later, |
| 1577 and JRE/JDK 1.5 or later. | 1629 and JRE/JDK 1.5 or later. |
| 1578 </para> | 1630 </para> |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1610 <listitem> | 1662 <listitem> |
| 1611 <para> | 1663 <para> |
| 1612 Provides the daily build of FindBugs. No testing other than that it com
piles. | 1664 Provides the daily build of FindBugs. No testing other than that it com
piles. |
| 1613 </para> | 1665 </para> |
| 1614 </listitem> | 1666 </listitem> |
| 1615 </varlistentry> | 1667 </varlistentry> |
| 1616 </variablelist> | 1668 </variablelist> |
| 1617 | 1669 |
| 1618 <para>You can also manually | 1670 <para>You can also manually |
| 1619 download the plugin from the following link: | 1671 download the plugin from the following link: |
| 1620 <ulink url="http://prdownloads.sourceforge.net/findbugs/edu.umd.cs.findbugs.plug
in.eclipse_2.0.3.20131122.zip?download" | 1672 <ulink url="http://prdownloads.sourceforge.net/findbugs/edu.umd.cs.findbugs.plug
in.eclipse_3.0.0.20140706.zip?download" |
| 1621 >http://prdownloads.sourceforge.net/findbugs/edu.umd.cs.findbugs.plugin.eclipse_
2.0.3.20131122.zip?download</ulink>. | 1673 >http://prdownloads.sourceforge.net/findbugs/edu.umd.cs.findbugs.plugin.eclipse_
3.0.0.20140706.zip?download</ulink>. |
| 1622 Extract it in Eclipse's "plugins" subdirectory. | 1674 Extract it in Eclipse's "plugins" subdirectory. |
| 1623 (So <eclipse_install_dir>/plugins/edu.umd.cs.findbugs.plugin.eclipse_2.0.3
.20131122/findbugs.png | 1675 (So <eclipse_install_dir>/plugins/edu.umd.cs.findbugs.plugin.eclipse_3.0.0
.20140706/findbugs.png |
| 1624 should be the path to the &FindBugs; logo.) | 1676 should be the path to the &FindBugs; logo.) |
| 1625 | 1677 |
| 1626 </para> | 1678 </para> |
| 1627 | 1679 |
| 1628 <para> | 1680 <para> |
| 1629 Once the plugin is extracted, start Eclipse and choose | 1681 Once the plugin is extracted, start Eclipse and choose |
| 1630 <menuchoice> | 1682 <menuchoice> |
| 1631 <guimenu>Help</guimenu> | 1683 <guimenu>Help</guimenu> |
| 1632 <guimenuitem>About Eclipse Platform</guimenuitem> | 1684 <guimenuitem>About Eclipse Platform</guimenuitem> |
| 1633 <guimenuitem>Plug-in Details</guimenuitem> | 1685 <guimenuitem>Plug-in Details</guimenuitem> |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1687 </para> | 1739 </para> |
| 1688 </listitem> | 1740 </listitem> |
| 1689 </itemizedlist> | 1741 </itemizedlist> |
| 1690 | 1742 |
| 1691 </sect1> | 1743 </sect1> |
| 1692 | 1744 |
| 1693 <sect1> | 1745 <sect1> |
| 1694 <title>Extending the Eclipse Plugin (since 2.0.0)</title> | 1746 <title>Extending the Eclipse Plugin (since 2.0.0)</title> |
| 1695 <para> | 1747 <para> |
| 1696 Eclipse plugin supports contribution of custom &FindBugs; detectors (see also | 1748 Eclipse plugin supports contribution of custom &FindBugs; detectors (see also |
| 1697 <ulink url="http://code.google.com/p/findbugs/source/browse/trunk/findbugs/src/d
oc/AddingDetectors.txt">AddingDetectors.txt</ulink> | 1749 <ulink url="http://code.google.com/p/findbugs/source/browse/findbugs/src/doc/Add
ingDetectors.txt">AddingDetectors.txt</ulink> |
| 1698 for more information). There are two ways to contribute custom plugins to the Ec
lipse: | 1750 for more information). There are two ways to contribute custom plugins to the Ec
lipse: |
| 1699 </para> | 1751 </para> |
| 1700 <itemizedlist> | 1752 <itemizedlist> |
| 1701 <listitem> | 1753 <listitem> |
| 1702 <para> | 1754 <para> |
| 1703 Existing standard &FindBugs; detector packages can be configured via | 1755 Existing standard &FindBugs; detector packages can be configured via |
| 1704 <menuchoice> | 1756 <menuchoice> |
| 1705 <guimenu>Window</guimenu> | 1757 <guimenu>Window</guimenu> |
| 1706 <guimenuitem>Preferences</guimenuitem> | 1758 <guimenuitem>Preferences</guimenuitem> |
| 1707 <guimenuitem>Java</guimenuitem> | 1759 <guimenuitem>Java</guimenuitem> |
| 1708 <guimenuitem>&FindBugs;</guimenuitem> | 1760 <guimenuitem>FindBugs</guimenuitem> |
| 1709 <guimenuitem>Misc. Settings</guimenuitem> | 1761 <guimenuitem>Misc. Settings</guimenuitem> |
| 1710 <guimenuitem>Custom Detectors</guimenuitem> | 1762 <guimenuitem>Custom Detectors</guimenuitem> |
| 1711 </menuchoice>. | 1763 </menuchoice>. |
| 1712 Simply specify there locations of any additional plugin libraries. | 1764 Simply specify there locations of any additional plugin libraries. |
| 1713 </para> | 1765 </para> |
| 1714 | 1766 |
| 1715 <para> | 1767 <para> |
| 1716 The benefit of this solution is that already existing detector packages can
be | 1768 The benefit of this solution is that already existing detector packages can
be |
| 1717 used "as is", and that you can quickly verify the quality of third party det
ectors. | 1769 used "as is", and that you can quickly verify the quality of third party det
ectors. |
| 1718 The drawback is that you have to apply this settings in each | 1770 The drawback is that you have to apply this settings in each |
| 1719 new Eclipse workspace, and this settings can't be shared between team member
s. | 1771 new Eclipse workspace, and this settings can't be shared between team member
s. |
| 1720 </para> | 1772 </para> |
| 1721 </listitem> | 1773 </listitem> |
| 1722 | 1774 |
| 1723 <listitem> | 1775 <listitem> |
| 1724 <para> | 1776 <para> |
| 1725 It is possible to contribute custom detectors via standard Eclipse extension
s mechanism. | 1777 It is possible to contribute custom detectors via standard Eclipse extension
s mechanism. |
| 1726 </para> | 1778 </para> |
| 1727 | 1779 |
| 1728 <para> | 1780 <para> |
| 1729 Please check the documentation of the | 1781 Please check the documentation of the |
| 1730 <ulink url="http://code.google.com/p/findbugs/source/browse/trunk/eclipsePlu
gin/schema/detectorPlugins.exsd"> | 1782 <ulink url="http://code.google.com/p/findbugs/source/browse/eclipsePlugin/sc
hema/detectorPlugins.exsd"> |
| 1731 findBugsEclipsePlugin/schema/detectorPlugins.exsd</ulink> | 1783 findBugsEclipsePlugin/schema/detectorPlugins.exsd</ulink> |
| 1732 extension point how to update the plugin.xml. Existing &FindBugs; detector p
lugins can | 1784 extension point how to update the plugin.xml. Existing &FindBugs; detector p
lugins can |
| 1733 be easily "extended" to be full featured &FindBugs; AND Eclipse detector plu
gins. | 1785 be easily "extended" to be full featured &FindBugs; AND Eclipse detector plu
gins. |
| 1734 Usually you only need to add META-INF/MANIFEST.MF and plugin.xml to the jar
and | 1786 Usually you only need to add META-INF/MANIFEST.MF and plugin.xml to the jar
and |
| 1735 update your build scripts to not to override the MANIFEST.MF during the buil
d. | 1787 update your build scripts to not to override the MANIFEST.MF during the buil
d. |
| 1736 </para> | 1788 </para> |
| 1737 | 1789 |
| 1738 <para> | 1790 <para> |
| 1739 The benefit of this solution is that for given (shared) Eclipse installation | 1791 The benefit of this solution is that for given (shared) Eclipse installation |
| 1740 each team member has exactly same detectors set, and there is no need to con
figure | 1792 each team member has exactly same detectors set, and there is no need to con
figure |
| 1741 anything anymore. The (really small) precondition | 1793 anything anymore. The (really small) precondition |
| 1742 is that you have to convert your existing detectors package to the valid | 1794 is that you have to convert your existing detectors package to the valid |
| 1743 Eclipse plugin. You can do this even for third-party detector packages. | 1795 Eclipse plugin. You can do this even for third-party detector packages. |
| 1744 Another major differentiator is the ability to extend the default FindBugs | 1796 Another major differentiator is the ability to extend the default FindBugs |
| 1745 classpath at runtime with required third party libraries (see | 1797 classpath at runtime with required third party libraries (see |
| 1746 <ulink url="http://code.google.com/p/findbugs/source/browse/trunk/findbugs/s
rc/doc/AddingDetectors.txt">AddingDetectors.txt</ulink> | 1798 <ulink url="http://code.google.com/p/findbugs/source/browse/findbugs/src/doc
/AddingDetectors.txt">AddingDetectors.txt</ulink> |
| 1747 for more information). | 1799 for more information). |
| 1748 </para> | 1800 </para> |
| 1749 </listitem> | 1801 </listitem> |
| 1750 | 1802 |
| 1751 </itemizedlist> | 1803 </itemizedlist> |
| 1752 | 1804 |
| 1753 </sect1> | 1805 </sect1> |
| 1754 | 1806 |
| 1755 <sect1> | 1807 <sect1> |
| 1756 <title>Troubleshooting</title> | 1808 <title>Troubleshooting</title> |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1945 <para> | 1997 <para> |
| 1946 If the <literal>Match</literal> element contains neither a <literal>
Class</literal> element, | 1998 If the <literal>Match</literal> element contains neither a <literal>
Class</literal> element, |
| 1947 nor a <literal>class</literal> / <literal>classregex</literal> attri
bute, the predicate will apply | 1999 nor a <literal>class</literal> / <literal>classregex</literal> attri
bute, the predicate will apply |
| 1948 to all classes. Such predicate is likely to match more bug instances
than you want, unless it is | 2000 to all classes. Such predicate is likely to match more bug instances
than you want, unless it is |
| 1949 refined further down with apropriate method or field predicates. | 2001 refined further down with apropriate method or field predicates. |
| 1950 </para> | 2002 </para> |
| 1951 </listitem> | 2003 </listitem> |
| 1952 </varlistentry> | 2004 </varlistentry> |
| 1953 | 2005 |
| 1954 <varlistentry> | 2006 <varlistentry> |
| 2007 <term><literal><Source></literal></term> |
| 2008 <listitem> |
| 2009 <para> |
| 2010 This element matches warnings associated with a particular source fi
le. The |
| 2011 <literal>name</literal> attribute is used to specify the exact or re
gex match pattern |
| 2012 for the source file name. |
| 2013 </para> |
| 2014 </listitem> |
| 2015 </varlistentry> |
| 2016 |
| 2017 <varlistentry> |
| 1955 <term><literal><Method></literal></term> | 2018 <term><literal><Method></literal></term> |
| 1956 | 2019 |
| 1957 <listitem><para>This element specifies a method. The <literal>name</literal>
is used to specify | 2020 <listitem><para>This element specifies a method. The <literal>name</literal>
is used to specify |
| 1958 the exact or regex match pattern for the method name. | 2021 the exact or regex match pattern for the method name. |
| 1959 The <literal>params</literal> attribute is a comma-separated list | 2022 The <literal>params</literal> attribute is a comma-separated list |
| 1960 of the types of the method's parameters. The <literal>returns</literal> attr
ibute is | 2023 of the types of the method's parameters. The <literal>returns</literal> attr
ibute is |
| 1961 the method's return type. In <literal>params</literal> and <literal>returns<
/literal>, class names | 2024 the method's return type. In <literal>params</literal> and <literal>returns<
/literal>, class names |
| 1962 must be fully qualified. (E.g., "java.lang.String" instead of just | 2025 must be fully qualified. (E.g., "java.lang.String" instead of just |
| 1963 "String".) If one of the latter attributes is specified the other is required
for creating a method signature. | 2026 "String".) If one of the latter attributes is specified the other is required
for creating a method signature. |
| 1964 Note that you can provide either <literal>name</literal> attribute or <litera
l>params</literal> | 2027 Note that you can provide either <literal>name</literal> attribute or <litera
l>params</literal> |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1989 <term><literal><Or></literal></term> | 2052 <term><literal><Or></literal></term> |
| 1990 <listitem><para> | 2053 <listitem><para> |
| 1991 This element combines <literal>Match</literal> clauses as disjuncts. I.e., y
ou can put two | 2054 This element combines <literal>Match</literal> clauses as disjuncts. I.e., y
ou can put two |
| 1992 <literal>Method</literal> elements in an <literal>Or</literal> clause in orde
r to match either method. | 2055 <literal>Method</literal> elements in an <literal>Or</literal> clause in orde
r to match either method. |
| 1993 </para></listitem> | 2056 </para></listitem> |
| 1994 </varlistentry> | 2057 </varlistentry> |
| 1995 <varlistentry> | 2058 <varlistentry> |
| 1996 <term><literal><And></literal></term> | 2059 <term><literal><And></literal></term> |
| 1997 <listitem><para> | 2060 <listitem><para> |
| 1998 This element combines <literal>Match</literal> clauses which both must evalua
te to true. I.e., you can put | 2061 This element combines <literal>Match</literal> clauses which both must evalua
te to true. I.e., you can put |
| 1999 <literal>Bug</literal> and <literal>Priority</literal> elements in an <litera
l>And</literal> clause in order | 2062 <literal>Bug</literal> and <literal>Confidence</literal> elements in an <lite
ral>And</literal> clause in order |
| 2000 to match specific bugs with given priority only. | 2063 to match specific bugs with given confidence only. |
| 2001 </para></listitem> | 2064 </para></listitem> |
| 2002 </varlistentry> | 2065 </varlistentry> |
| 2003 <varlistentry> | 2066 <varlistentry> |
| 2004 <term><literal><Not></literal></term> | 2067 <term><literal><Not></literal></term> |
| 2005 <listitem><para> | 2068 <listitem><para> |
| 2006 This element inverts the included child <literal>Match</literal>. I.e., you c
an put a | 2069 This element inverts the included child <literal>Match</literal>. I.e., you c
an put a |
| 2007 <literal>Bug</literal> element in a <literal>Not</literal> clause in order to
match any bug | 2070 <literal>Bug</literal> element in a <literal>Not</literal> clause in order to
match any bug |
| 2008 excluding the given one. | 2071 excluding the given one. |
| 2009 </para></listitem> | 2072 </para></listitem> |
| 2010 </varlistentry> | 2073 </varlistentry> |
| 2011 </variablelist> | 2074 </variablelist> |
| 2012 | 2075 |
| 2013 </sect1> | 2076 </sect1> |
| 2014 | 2077 |
| 2015 <sect1> | 2078 <sect1> |
| 2016 <title>Java element name matching</title> | 2079 <title>Java element name matching</title> |
| 2017 | 2080 |
| 2018 <para> | 2081 <para> |
| 2019 If the <literal>name</literal> attribute of <literal>Class</literal>, <literal>M
ethod</literal> or | 2082 If the <literal>name</literal> attribute of <literal>Class</literal>, <literal>S
ource</literal>, |
| 2020 <literal>Field</literal> starts with the ~ character the rest of attribute conte
nt is interpreted as | 2083 <literal>Method</literal> or <literal>Field</literal> starts with the ~ characte
r |
| 2084 the rest of attribute content is interpreted as |
| 2021 a Java regular expression that is matched against the names of the Java element
in question. | 2085 a Java regular expression that is matched against the names of the Java element
in question. |
| 2022 </para> | 2086 </para> |
| 2023 | 2087 |
| 2024 <para> | 2088 <para> |
| 2025 Note that the pattern is matched against whole element name and therefore .* cla
uses need to be used | 2089 Note that the pattern is matched against whole element name and therefore .* cla
uses need to be used |
| 2026 at pattern beginning and/or end to perform substring matching. | 2090 at pattern beginning and/or end to perform substring matching. |
| 2027 </para> | 2091 </para> |
| 2028 | 2092 |
| 2029 <para> | 2093 <para> |
| 2030 See <ulink url="http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.
html"><literal>java.util.regex.Pattern</literal></ulink> | 2094 See <ulink url="http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.
html"><literal>java.util.regex.Pattern</literal></ulink> |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2252 <!-- test classes are suffixed by 'Test' --> | 2316 <!-- test classes are suffixed by 'Test' --> |
| 2253 | 2317 |
| 2254 <Not> | 2318 <Not> |
| 2255 <Bug code="IJU" /> <!-- 'IJU' is the code for bugs related to JUnit test c
ode --> | 2319 <Bug code="IJU" /> <!-- 'IJU' is the code for bugs related to JUnit test c
ode --> |
| 2256 </Not> | 2320 </Not> |
| 2257 </Match> | 2321 </Match> |
| 2258 ]]> | 2322 ]]> |
| 2259 </programlisting> | 2323 </programlisting> |
| 2260 </para> | 2324 </para> |
| 2261 | 2325 |
| 2326 <para> |
| 2327 12. Full exclusion filter file to match all classes generated from Groovy sour
ce files. |
| 2328 |
| 2329 <programlisting> |
| 2330 <![CDATA[ |
| 2331 <?xml version="1.0" encoding="UTF-8"?> |
| 2332 <FindBugsFilter> |
| 2333 <Match> |
| 2334 <Source name="~.*\.groovy" /> |
| 2335 </Match> |
| 2336 </FindBugsFilter> |
| 2337 ]]> |
| 2338 </programlisting> |
| 2339 </para> |
| 2340 |
| 2262 </sect1> | 2341 </sect1> |
| 2263 | 2342 |
| 2264 <sect1> | 2343 <sect1> |
| 2265 <title>Complete Example</title> | 2344 <title>Complete Example</title> |
| 2266 | 2345 |
| 2267 <programlisting> | 2346 <programlisting> |
| 2268 <![CDATA[ | 2347 <![CDATA[ |
| 2269 <FindBugsFilter> | 2348 <FindBugsFilter> |
| 2270 <Match> | 2349 <Match> |
| 2271 <Class name="com.foobar.ClassNotToBeAnalyzed" /> | 2350 <Class name="com.foobar.ClassNotToBeAnalyzed" /> |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2454 &FindBugs; supports several annotations to express the developer's intent | 2533 &FindBugs; supports several annotations to express the developer's intent |
| 2455 so that FindBugs can issue warnings more appropriately. You need to use | 2534 so that FindBugs can issue warnings more appropriately. You need to use |
| 2456 Java 5 to use annotations, and must place the annotations.jar and jsr305.jar | 2535 Java 5 to use annotations, and must place the annotations.jar and jsr305.jar |
| 2457 files in the classpath while compiling your program. | 2536 files in the classpath while compiling your program. |
| 2458 </para> | 2537 </para> |
| 2459 | 2538 |
| 2460 <variablelist> | 2539 <variablelist> |
| 2461 <varlistentry> | 2540 <varlistentry> |
| 2462 <term><command>edu.umd.cs.findbugs.annotations.CheckForNull</command></term> | 2541 <term><command>edu.umd.cs.findbugs.annotations.CheckForNull</command></term> |
| 2463 <listitem> | 2542 <listitem> |
| 2464 <command>[Target]</command> Field, Method, Parameter | 2543 <para> |
| 2544 <command>[Target]</command> Field, Method, Parameter |
| 2545 </para> |
| 2465 </listitem> | 2546 </listitem> |
| 2466 <listitem> | 2547 <listitem> |
| 2467 <para> | 2548 <para> |
| 2468 The annotated element might be null, and uses of the element should check for nu
ll. | 2549 The annotated element might be null, and uses of the element should check for nu
ll. |
| 2469 When this annotation is applied to a method it applies to the method return valu
e. | 2550 When this annotation is applied to a method it applies to the method return valu
e. |
| 2470 </para> | 2551 </para> |
| 2471 </listitem> | 2552 </listitem> |
| 2472 </varlistentry> | 2553 </varlistentry> |
| 2473 | 2554 |
| 2474 <varlistentry> | 2555 <varlistentry> |
| 2475 <term><command>edu.umd.cs.findbugs.annotations.CheckReturnValue</command></t
erm> | 2556 <term><command>edu.umd.cs.findbugs.annotations.CheckReturnValue</command></t
erm> |
| 2476 <listitem> | 2557 <listitem> |
| 2558 <para> |
| 2477 <command>[Target]</command> Method, Constructor | 2559 <command>[Target]</command> Method, Constructor |
| 2560 </para> |
| 2478 </listitem> | 2561 </listitem> |
| 2479 <listitem> | 2562 <listitem> |
| 2480 <variablelist> | 2563 <variablelist> |
| 2481 <varlistentry> | 2564 <varlistentry> |
| 2482 <term><command>[Parameter]</command></term> | 2565 <term><command>[Parameter]</command></term> |
| 2483 <listitem> | 2566 <listitem> |
| 2484 <para> | 2567 <para> |
| 2485 <command>priority:</command>The priority of the warning (HIGH, MED
IUM, LOW, IGNORE). Default value:MEDIUM. | 2568 <command>priority:</command>The priority of the warning (HIGH, MED
IUM, LOW, IGNORE). Default value:MEDIUM. |
| 2486 </para> | 2569 </para> |
| 2487 </listitem> | 2570 </listitem> |
| 2488 <listitem> | 2571 <listitem> |
| 2489 <para> | 2572 <para> |
| 2490 <command>explanation:</command>A textual explaination of why the r
eturn value should be checked. Default value:"". | 2573 <command>explanation:</command>A textual explaination of why the r
eturn value should be checked. Default value:"". |
| 2491 </para> | 2574 </para> |
| 2492 </listitem> | 2575 </listitem> |
| 2493 </varlistentry> | 2576 </varlistentry> |
| 2494 </variablelist> | 2577 </variablelist> |
| 2495 </listitem> | 2578 </listitem> |
| 2496 <listitem> | 2579 <listitem> |
| 2497 <para> | 2580 <para> |
| 2498 This annotation is used to denote a method whose return value should always be c
hecked after invoking the method. | 2581 This annotation is used to denote a method whose return value should always be c
hecked after invoking the method. |
| 2499 </para> | 2582 </para> |
| 2500 </listitem> | 2583 </listitem> |
| 2501 </varlistentry> | 2584 </varlistentry> |
| 2502 | 2585 |
| 2503 <varlistentry> | 2586 <varlistentry> |
| 2504 <term><command>edu.umd.cs.findbugs.annotations.DefaultAnnotation</command></
term> | 2587 <term><command>edu.umd.cs.findbugs.annotations.DefaultAnnotation</command></
term> |
| 2505 <listitem> | 2588 <listitem> |
| 2506 <command>[Target]</command> Type, Package | 2589 <para> |
| 2590 <command>[Target]</command> Type, Package |
| 2591 </para> |
| 2507 </listitem> | 2592 </listitem> |
| 2508 <listitem> | 2593 <listitem> |
| 2509 <variablelist> | 2594 <variablelist> |
| 2510 <varlistentry> | 2595 <varlistentry> |
| 2511 <term><command>[Parameter]</command></term> | 2596 <term><command>[Parameter]</command></term> |
| 2512 <listitem> | 2597 <listitem> |
| 2513 <para> | 2598 <para> |
| 2514 <command>value:</command>Annotation class objects. More than one c
lass can be specified. | 2599 <command>value:</command>Annotation class objects. More than one c
lass can be specified. |
| 2515 </para> | 2600 </para> |
| 2516 </listitem> | 2601 </listitem> |
| (...skipping 12 matching lines...) Expand all Loading... |
| 2529 such as @NonNull, @CheckForNull, or @CheckReturnValue. In particular, you can us
e | 2614 such as @NonNull, @CheckForNull, or @CheckReturnValue. In particular, you can us
e |
| 2530 @DefaultAnnotation(NonNull.class) on a class or package, and then use @Nullable
only | 2615 @DefaultAnnotation(NonNull.class) on a class or package, and then use @Nullable
only |
| 2531 on those parameters, methods or fields that you want to allow to be null. | 2616 on those parameters, methods or fields that you want to allow to be null. |
| 2532 </para> | 2617 </para> |
| 2533 </listitem> | 2618 </listitem> |
| 2534 </varlistentry> | 2619 </varlistentry> |
| 2535 | 2620 |
| 2536 <varlistentry> | 2621 <varlistentry> |
| 2537 <term><command>edu.umd.cs.findbugs.annotations.DefaultAnnotationForFields</c
ommand></term> | 2622 <term><command>edu.umd.cs.findbugs.annotations.DefaultAnnotationForFields</c
ommand></term> |
| 2538 <listitem> | 2623 <listitem> |
| 2624 <para> |
| 2539 <command>[Target]</command> Type, Package | 2625 <command>[Target]</command> Type, Package |
| 2626 </para> |
| 2540 </listitem> | 2627 </listitem> |
| 2541 <listitem> | 2628 <listitem> |
| 2542 <variablelist> | 2629 <variablelist> |
| 2543 <varlistentry> | 2630 <varlistentry> |
| 2544 <term><command>[Parameter]</command></term> | 2631 <term><command>[Parameter]</command></term> |
| 2545 <listitem> | 2632 <listitem> |
| 2546 <para> | 2633 <para> |
| 2547 <command>value:</command>Annotation class objects. More than one c
lass can be specified. | 2634 <command>value:</command>Annotation class objects. More than one c
lass can be specified. |
| 2548 </para> | 2635 </para> |
| 2549 </listitem> | 2636 </listitem> |
| 2550 <listitem> | 2637 <listitem> |
| 2551 <para> | 2638 <para> |
| 2552 <command>priority:</command>Default priority(HIGH, MEDIUM, LOW, IG
NORE). Default value:MEDIUM. | 2639 <command>priority:</command>Default priority(HIGH, MEDIUM, LOW, IG
NORE). Default value:MEDIUM. |
| 2553 </para> | 2640 </para> |
| 2554 </listitem> | 2641 </listitem> |
| 2555 </varlistentry> | 2642 </varlistentry> |
| 2556 </variablelist> | 2643 </variablelist> |
| 2557 </listitem> | 2644 </listitem> |
| 2558 <listitem> | 2645 <listitem> |
| 2559 <para> | 2646 <para> |
| 2560 This is same as the DefaultAnnotation except it only applys to fields. | 2647 This is same as the DefaultAnnotation except it only applys to fields. |
| 2561 </para> | 2648 </para> |
| 2562 </listitem> | 2649 </listitem> |
| 2563 </varlistentry> | 2650 </varlistentry> |
| 2564 | 2651 |
| 2565 <varlistentry> | 2652 <varlistentry> |
| 2566 <term><command>edu.umd.cs.findbugs.annotations.DefaultAnnotationForMethods</
command></term> | 2653 <term><command>edu.umd.cs.findbugs.annotations.DefaultAnnotationForMethods</
command></term> |
| 2567 <listitem> | 2654 <listitem> |
| 2655 <para> |
| 2568 <command>[Target]</command> Type, Package | 2656 <command>[Target]</command> Type, Package |
| 2657 </para> |
| 2569 </listitem> | 2658 </listitem> |
| 2570 <listitem> | 2659 <listitem> |
| 2571 <variablelist> | 2660 <variablelist> |
| 2572 <varlistentry> | 2661 <varlistentry> |
| 2573 <term><command>[Parameter]</command></term> | 2662 <term><command>[Parameter]</command></term> |
| 2574 <listitem> | 2663 <listitem> |
| 2575 <para> | 2664 <para> |
| 2576 <command>value:</command>Annotation class objects. More than one c
lass can be specified. | 2665 <command>value:</command>Annotation class objects. More than one c
lass can be specified. |
| 2577 </para> | 2666 </para> |
| 2578 </listitem> | 2667 </listitem> |
| 2579 <listitem> | 2668 <listitem> |
| 2580 <para> | 2669 <para> |
| 2581 <command>priority:</command>Default priority(HIGH, MEDIUM, LOW, IG
NORE). Default value:MEDIUM. | 2670 <command>priority:</command>Default priority(HIGH, MEDIUM, LOW, IG
NORE). Default value:MEDIUM. |
| 2582 </para> | 2671 </para> |
| 2583 </listitem> | 2672 </listitem> |
| 2584 </varlistentry> | 2673 </varlistentry> |
| 2585 </variablelist> | 2674 </variablelist> |
| 2586 </listitem> | 2675 </listitem> |
| 2587 <listitem> | 2676 <listitem> |
| 2588 <para> | 2677 <para> |
| 2589 This is same as the DefaultAnnotation except it only applys to methods. | 2678 This is same as the DefaultAnnotation except it only applys to methods. |
| 2590 </para> | 2679 </para> |
| 2591 </listitem> | 2680 </listitem> |
| 2592 </varlistentry> | 2681 </varlistentry> |
| 2593 | 2682 |
| 2594 <varlistentry> | 2683 <varlistentry> |
| 2595 <term><command>edu.umd.cs.findbugs.annotations.DefaultAnnotationForParameter
s</command></term> | 2684 <term><command>edu.umd.cs.findbugs.annotations.DefaultAnnotationForParameter
s</command></term> |
| 2596 <listitem> | 2685 <listitem> |
| 2686 <para> |
| 2597 <command>[Target]</command> Type, Package | 2687 <command>[Target]</command> Type, Package |
| 2688 </para> |
| 2598 </listitem> | 2689 </listitem> |
| 2599 <listitem> | 2690 <listitem> |
| 2600 <variablelist> | 2691 <variablelist> |
| 2601 <varlistentry> | 2692 <varlistentry> |
| 2602 <term><command>[Parameter]</command></term> | 2693 <term><command>[Parameter]</command></term> |
| 2603 <listitem> | 2694 <listitem> |
| 2604 <para> | 2695 <para> |
| 2605 <command>value:</command>Annotation class objects. More than one c
lass can be specified. | 2696 <command>value:</command>Annotation class objects. More than one c
lass can be specified. |
| 2606 </para> | 2697 </para> |
| 2607 </listitem> | 2698 </listitem> |
| 2608 <listitem> | 2699 <listitem> |
| 2609 <para> | 2700 <para> |
| 2610 <command>priority:</command>Default priority(HIGH, MEDIUM, LOW, IG
NORE). Default value:MEDIUM. | 2701 <command>priority:</command>Default priority(HIGH, MEDIUM, LOW, IG
NORE). Default value:MEDIUM. |
| 2611 </para> | 2702 </para> |
| 2612 </listitem> | 2703 </listitem> |
| 2613 </varlistentry> | 2704 </varlistentry> |
| 2614 </variablelist> | 2705 </variablelist> |
| 2615 </listitem> | 2706 </listitem> |
| 2616 <listitem> | 2707 <listitem> |
| 2617 <para> | 2708 <para> |
| 2618 This is same as the DefaultAnnotation except it only applys to method parameters
. | 2709 This is same as the DefaultAnnotation except it only applys to method parameters
. |
| 2619 </para> | 2710 </para> |
| 2620 </listitem> | 2711 </listitem> |
| 2621 </varlistentry> | 2712 </varlistentry> |
| 2622 | 2713 |
| 2623 <varlistentry> | 2714 <varlistentry> |
| 2624 <term><command>edu.umd.cs.findbugs.annotations.NonNull</command></term> | 2715 <term><command>edu.umd.cs.findbugs.annotations.NonNull</command></term> |
| 2625 <listitem> | 2716 <listitem> |
| 2717 <para> |
| 2626 <command>[Target]</command> Field, Method, Parameter | 2718 <command>[Target]</command> Field, Method, Parameter |
| 2719 </para> |
| 2627 </listitem> | 2720 </listitem> |
| 2628 <listitem> | 2721 <listitem> |
| 2629 <para> | 2722 <para> |
| 2630 The annotated element must not be null. | 2723 The annotated element must not be null. |
| 2631 Annotated fields must not be null after construction has completed. Annotated me
thods must have non-null return values. | 2724 Annotated fields must not be null after construction has completed. Annotated me
thods must have non-null return values. |
| 2632 </para> | 2725 </para> |
| 2633 </listitem> | 2726 </listitem> |
| 2634 </varlistentry> | 2727 </varlistentry> |
| 2635 | 2728 |
| 2636 <varlistentry> | 2729 <varlistentry> |
| 2637 <term><command>edu.umd.cs.findbugs.annotations.Nullable</command></term> | 2730 <term><command>edu.umd.cs.findbugs.annotations.Nullable</command></term> |
| 2638 <listitem> | 2731 <listitem> |
| 2732 <para> |
| 2639 <command>[Target]</command> Field, Method, Parameter | 2733 <command>[Target]</command> Field, Method, Parameter |
| 2734 </para> |
| 2640 </listitem> | 2735 </listitem> |
| 2641 <listitem> | 2736 <listitem> |
| 2642 <para> | 2737 <para> |
| 2643 The annotated element could be null under some circumstances. In general, this m
eans | 2738 The annotated element could be null under some circumstances. In general, this m
eans |
| 2644 developers will have to read the documentation to determine when a null value is | 2739 developers will have to read the documentation to determine when a null value is |
| 2645 acceptable and whether it is neccessary to check for a null value. FindBugs wil
l | 2740 acceptable and whether it is neccessary to check for a null value. FindBugs wil
l |
| 2646 treat the annotated items as though they had no annotation. | 2741 treat the annotated items as though they had no annotation. |
| 2647 </para> | 2742 </para> |
| 2648 <para> | 2743 <para> |
| 2649 In pratice this annotation is useful only for overriding an overarching NonNull | 2744 In practice this annotation is useful only for overriding an overarching NonNull |
| 2650 annotation. | 2745 annotation. |
| 2651 </para> | 2746 </para> |
| 2652 </listitem> | 2747 </listitem> |
| 2653 </varlistentry> | 2748 </varlistentry> |
| 2654 | 2749 |
| 2655 <varlistentry> | 2750 <varlistentry> |
| 2656 <term><command>edu.umd.cs.findbugs.annotations.OverrideMustInvoke</command><
/term> | 2751 <term><command>edu.umd.cs.findbugs.annotations.OverrideMustInvoke</command><
/term> |
| 2657 <listitem> | 2752 <listitem> |
| 2753 <para> |
| 2658 <command>[Target]</command> Method | 2754 <command>[Target]</command> Method |
| 2755 </para> |
| 2659 </listitem> | 2756 </listitem> |
| 2660 <listitem> | 2757 <listitem> |
| 2661 <variablelist> | 2758 <variablelist> |
| 2662 <varlistentry> | 2759 <varlistentry> |
| 2663 <term><command>[Parameter]</command></term> | 2760 <term><command>[Parameter]</command></term> |
| 2664 <listitem> | 2761 <listitem> |
| 2665 <para> | 2762 <para> |
| 2666 <command>value:</command>Specify when the super invocation should
be | 2763 <command>value:</command>Specify when the super invocation should
be |
| 2667 performed (FIRST, ANYTIME, LAST). Default value:ANYTIME. | 2764 performed (FIRST, ANYTIME, LAST). Default value:ANYTIME. |
| 2668 </para> | 2765 </para> |
| (...skipping 17 matching lines...) Expand all Loading... |
| 2686 <listitem> | 2783 <listitem> |
| 2687 <para> | 2784 <para> |
| 2688 This annotation is deprecated. Use CheckForNull instead. | 2785 This annotation is deprecated. Use CheckForNull instead. |
| 2689 </para> | 2786 </para> |
| 2690 </listitem> | 2787 </listitem> |
| 2691 </varlistentry> | 2788 </varlistentry> |
| 2692 | 2789 |
| 2693 <varlistentry> | 2790 <varlistentry> |
| 2694 <term><command>edu.umd.cs.findbugs.annotations.SuppressWarnings</command></t
erm> | 2791 <term><command>edu.umd.cs.findbugs.annotations.SuppressWarnings</command></t
erm> |
| 2695 <listitem> | 2792 <listitem> |
| 2793 <para> |
| 2696 <command>[Target]</command> Type, Field, Method, Parameter, Constructor, P
ackage | 2794 <command>[Target]</command> Type, Field, Method, Parameter, Constructor, P
ackage |
| 2795 </para> |
| 2697 </listitem> | 2796 </listitem> |
| 2698 <listitem> | 2797 <listitem> |
| 2699 <variablelist> | 2798 <variablelist> |
| 2700 <varlistentry> | 2799 <varlistentry> |
| 2701 <term><command>[Parameter]</command></term> | 2800 <term><command>[Parameter]</command></term> |
| 2702 <listitem> | 2801 <listitem> |
| 2703 <para> | 2802 <para> |
| 2704 <command>value:</command>The name of the warning. More than one na
me can be specified. | 2803 <command>value:</command>The name of the warning. More than one na
me can be specified. |
| 2705 </para> | 2804 </para> |
| 2706 </listitem> | 2805 </listitem> |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2721 warning if an annotation contains an unrecognized warning name. Compiler vendors
should | 2820 warning if an annotation contains an unrecognized warning name. Compiler vendors
should |
| 2722 document the warning names they support in conjunction with this annotation type
. They | 2821 document the warning names they support in conjunction with this annotation type
. They |
| 2723 are encouraged to cooperate to ensure that the same names work across multiple c
ompilers. | 2822 are encouraged to cooperate to ensure that the same names work across multiple c
ompilers. |
| 2724 </para> | 2823 </para> |
| 2725 </listitem> | 2824 </listitem> |
| 2726 </varlistentry> | 2825 </varlistentry> |
| 2727 | 2826 |
| 2728 <varlistentry> | 2827 <varlistentry> |
| 2729 <term><command>edu.umd.cs.findbugs.annotations.UnknownNullness</command></te
rm> | 2828 <term><command>edu.umd.cs.findbugs.annotations.UnknownNullness</command></te
rm> |
| 2730 <listitem> | 2829 <listitem> |
| 2830 <para> |
| 2731 <command>[Target]</command> Field, Method, Parameter | 2831 <command>[Target]</command> Field, Method, Parameter |
| 2832 </para> |
| 2732 </listitem> | 2833 </listitem> |
| 2733 <listitem> | 2834 <listitem> |
| 2734 <para> | 2835 <para> |
| 2735 Used to indicate that the nullness of the target is unknown, or my vary in unkno
wn ways in subclasses. | 2836 Used to indicate that the nullness of the target is unknown, or my vary in unkno
wn ways in subclasses. |
| 2736 </para> | 2837 </para> |
| 2737 </listitem> | 2838 </listitem> |
| 2738 </varlistentry> | 2839 </varlistentry> |
| 2739 | 2840 |
| 2740 <varlistentry> | 2841 <varlistentry> |
| 2741 <term><command>edu.umd.cs.findbugs.annotations.UnknownNullness</command></te
rm> | 2842 <term><command>edu.umd.cs.findbugs.annotations.UnknownNullness</command></te
rm> |
| 2742 <listitem> | 2843 <listitem> |
| 2844 <para> |
| 2743 <command>[Target]</command> Field, Method, Parameter | 2845 <command>[Target]</command> Field, Method, Parameter |
| 2846 </para> |
| 2744 </listitem> | 2847 </listitem> |
| 2745 <listitem> | 2848 <listitem> |
| 2746 <para> | 2849 <para> |
| 2747 Used to indicate that the nullness of the target is unknown, or my vary in unkno
wn ways in subclasses. | 2850 Used to indicate that the nullness of the target is unknown, or my vary in unkno
wn ways in subclasses. |
| 2748 </para> | 2851 </para> |
| 2749 </listitem> | 2852 </listitem> |
| 2750 </varlistentry> | 2853 </varlistentry> |
| 2751 </variablelist> | 2854 </variablelist> |
| 2752 | 2855 |
| 2753 <para> | 2856 <para> |
| 2754 &FindBugs; also supports the following annotations: | 2857 &FindBugs; also supports the following annotations: |
| 2755 <itemizedlist> | 2858 <itemizedlist> |
| 2756 <listitem>net.jcip.annotations.GuardedBy</listitem> | 2859 <listitem><para>net.jcip.annotations.GuardedBy</para></listitem> |
| 2757 <listitem>net.jcip.annotations.Immutable</listitem> | 2860 <listitem><para>net.jcip.annotations.Immutable</para></listitem> |
| 2758 <listitem>net.jcip.annotations.NotThreadSafe</listitem> | 2861 <listitem><para>net.jcip.annotations.NotThreadSafe</para></listitem> |
| 2759 <listitem>net.jcip.annotations.ThreadSafe</listitem> | 2862 <listitem><para>net.jcip.annotations.ThreadSafe</para></listitem> |
| 2760 </itemizedlist> | 2863 </itemizedlist> |
| 2761 </para> | 2864 </para> |
| 2762 <para> | 2865 <para> |
| 2763 You can refer the JCIP annotation <ulink url="http://jcip.net/annotations/doc/in
dex.html"> | 2866 You can refer the JCIP annotation <ulink url="http://jcip.net/annotations/doc/in
dex.html"> |
| 2764 API documentation</ulink> at <ulink url="http://jcip.net/">Java Concurrency in P
ractice</ulink>. | 2867 API documentation</ulink> at <ulink url="http://jcip.net/">Java Concurrency in P
ractice</ulink>. |
| 2765 </para> | 2868 </para> |
| 2766 </chapter> | 2869 </chapter> |
| 2767 | 2870 |
| 2768 <!-- | 2871 <!-- |
| 2769 ************************************************************************** | 2872 ************************************************************************** |
| (...skipping 989 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3759 <para>Phil Crosby enhanced the Eclipse plugin to add a view | 3862 <para>Phil Crosby enhanced the Eclipse plugin to add a view |
| 3760 to display the bug details.</para> | 3863 to display the bug details.</para> |
| 3761 | 3864 |
| 3762 <para>Dave Brosius fixed a number of bugs, added user preferences | 3865 <para>Dave Brosius fixed a number of bugs, added user preferences |
| 3763 to the Swing GUI, improved several bug detectors, and | 3866 to the Swing GUI, improved several bug detectors, and |
| 3764 contributed the string concatenation detector.</para> | 3867 contributed the string concatenation detector.</para> |
| 3765 | 3868 |
| 3766 <para>Thomas Klaeger contributed a number of bug fixes and | 3869 <para>Thomas Klaeger contributed a number of bug fixes and |
| 3767 bug detector improvements.</para> | 3870 bug detector improvements.</para> |
| 3768 | 3871 |
| 3769 <para>Andrei Loskutov made a number of improvements to the | 3872 <para>Andrey Loskutov made a number of bug fixes and |
| 3770 Eclipse plugin.</para> | 3873 bug detector improvements. He is maintainer of the Eclipse plugin.</para> |
| 3771 | 3874 |
| 3772 <para>Brian Goetz contributed a major refactoring of the | 3875 <para>Brian Goetz contributed a major refactoring of the |
| 3773 visitor classes to improve readability and understandability.</para> | 3876 visitor classes to improve readability and understandability.</para> |
| 3774 | 3877 |
| 3775 <para> Pete Angstadt fixed several problems in the Swing GUI.</para> | 3878 <para> Pete Angstadt fixed several problems in the Swing GUI.</para> |
| 3776 | 3879 |
| 3777 <para>Francis Lalonde provided a task resource file for the | 3880 <para>Francis Lalonde provided a task resource file for the |
| 3778 FindBugs Ant task.</para> | 3881 FindBugs Ant task.</para> |
| 3779 | 3882 |
| 3780 <para>Garvin LeClaire contributed support for output in | 3883 <para>Garvin LeClaire contributed support for output in |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3981 </blockquote> | 4084 </blockquote> |
| 3982 | 4085 |
| 3983 </sect2> | 4086 </sect2> |
| 3984 | 4087 |
| 3985 </sect1> | 4088 </sect1> |
| 3986 | 4089 |
| 3987 </chapter> | 4090 </chapter> |
| 3988 | 4091 |
| 3989 | 4092 |
| 3990 </book> | 4093 </book> |
| OLD | NEW |