第9章 解析プロパティ

FindBugs は、カスタマイズされた実行のために、いくつかの見解を許容します。 システムプロパティはそれらのオプション設定のために使用されます。 この章では設定可能な解析オプションについて説明します。

解析オプションは2つの主な目的を持ちます。 まず、あなたの アプリケーション内のメソッドの意味について FindBugs に伝えることが できるということです。 これは、より正確な結果をもたらすか、あるいは誤った警告を 減らすことができます。 次に、それらは正確な解析を実行するために 設定を行うことを可能とします。 解析の正確さを減らすことは、いくつかのバグの見逃し および誤った警告の表示と引き換えにメモリおよび解析時間を抑えることが できるかもしれません。

解析オプションは、-property コマンドラインオプションを 使用して設定します。 例:

$ findbugs -textui -property "cfg.noprune=true" myApp.jar

設定可能な解析プロパティのリストを示します 表 9.1. 「設定可能な解析プロパティ」.

表 9.1. 設定可能な解析プロパティ

プロパティ名意味
findbugs.assertionmethodsコンマ区切りの、完全修飾されたメソッド名のリスト: e.g., "com.foo.MyClass.checkAssertion"このプロパティは、プログラムの assertion を確認するために 使われるメソッドの名前を指定します。 これらのメソッドを指定することで assertion によってチェックされる値に対する誤った警告が null pointer dereference バグ検出器によってレポートされる ことを避けることができます。
findbugs.refcomp.reportAlltrue または falsetrue の場合、すべての == および != 演算子を使用した 疑わしい参照比較をレポートします。  false の場合、 メソッド毎にひとつだけ警告します。 デフォルトは false です。
findbugs.maskedfields.localstrue または falsetrue の場合、obscure フィールドであるローカル変数を low プライオリティとします。 デフォルトは false です。
findbugs.nullderef.assumensptrue または falsetrue の場合、null dereference 検出器は メソッドから 返される あるいは メソッドに渡されるパラメータの いかなる参照値も null かもしれないと仮定します。 デフォルトは false です。 メモ: このプロパティを有効にすると、おそらく 多くの誤った警告が報告される原因となります。
findbugs.sf.commenttrue または falsetrue の場合、SwitchFallthrough 検出器は ソースコードが "fall" あるいは "nobreak" という語を含んだコメントを持たない case のみに警告を報告します。 (この機能が正しく動作する ためには 正確なソースパスを指定する必要があります) これは、switch fallthrough が意図的でないケースを 見つける助けとなります。
findbugs.de.commenttrue または falsetrue の場合、DroppedException 検出器はコメント用の 空の catch ブロック用のソースコードを検出し、見つかった場合 警告を報告しません。