UMC.SYSERR

System.exit()、System.gc() などの望ましくない可能性のあるメソッドに関連した "UMC 望ましくないメソッド呼び出し" グループのエラーです。System.out.println()、System.err.println() などのデバッグ表示も好ましくない可能性があります。警告 UMC.SYSERR は、System.err ストリームの print メソッドの呼び出しが存在する場合に表示されます。

脆弱性とリスク

成熟したアプリケーションにおいては、この呼び出しを 1 つのロギング モジュールおよび機能コンソールの出力に限定する必要があります。そうでない場合には、誤使用の診断となり、修正が必要となります。

軽減と防止

syserr のプリントの呼び出しを Logger モジュールの呼び出しに置き換えます。stdout のプリントの呼び出しを Logger の呼び出しに置き換えるか、printRawToUser() のような専用メソッドの呼び出しに置き換えます。

例 1

コピー
      public int internalCalculateSum(int x, int y) {
         if (x < 0 || y < 0) {
             System.err.println("XXX: got strange arguments!");
         }
         return x + y;
     }

UMC.SYSERR が 11 行目に対して報告されています。System.err メソッド呼び出しを使用したデバッグ表示は好ましくありません。