ウォークスルー: NPE.RET 未検知の処理
次の例では、NPE.RET が検出されています。フィールドは 'get()' から null が返され、'o.toString()' で逆参照されています。Klocwork では、'assertNotNull' の呼び出しが有効なメソッドとして認識されないために、NPE.RET が検出されます。
トレースバックでは、指摘に関する詳細情報が得られ、対象のメソッドを特定するために役立ちます。
未検知に対応するために、Java knowledge base (ナレッジベース) の@Bind および @Check という 2 つの注釈を追加します。
- エディターで assertNotNull を選択します。
-
アイコンをクリックするか、<Alt+Enter> キーを押して、JKB ファイルにメソッドを追加します。
JKB ファイルが作成され、
default_tuning.jkb
という名前が付けられます。ファイルの最後に、前の手順で選択したメソッドが追加されます。 - 以下を追加する必要があります。
package junit.framework; @Bind("NPE.RET") public class Assert public static void assertNotNull(@Check java.lang.Object object); }
- 解析を再実行します。
をクリックします。NPE.RET が検出されないようになります。