RI.IGNOREDCALL
RI.IGNOREDCALL エラーは、immutable クラスのメソッドの呼び出しが存在する場合に表示されます。このメソッドには副作用があり、その結果は変数に代入されません (単に無視されます)。これは、関数がそのクラスの値を変更する際にプログラミングでは異なる API が想定されているために発生します。Klocwork で検出される Java のメソッドは以下のとおりです。
- String を返す String クラスのすべてのメソッド
 - StringBuffer クラスの toString() メソッド
 - InetAddress クラス、BigInteger クラス、BigDecimal クラスのすべてのメソッド
 - MessageDigest クラスの Digest(byte[]) メソッド
 
脆弱性とリスク
メソッドの動作を誤解すると、アプリケーションロジックに欠陥を生じます。
軽減と防止
メソッド (a=a.trim() など) から返された値を保存してください。
例 1
コピー
                                                    
                                                
                                                     public void write(String indent, Writer writer) {
         String description = getDescription();
         if (description != null)
             description.trim();
         // ...
         // write it
     }
                                                    RI.IGNOREDCALL が 16 行目に対して報告されています。'java.lang.String.trim()' による戻り値は無視されます。
セキュリティトレーニング
Secure Code Warrior が提供しているアプリケーションセキュリティトレーニング教材。