UF.SOCK

UF (Use Freed) 指摘は、リソースが解放された後にリソースを使用する試みがある場合に報告されます。警告 UF.SOCK は、ソケットが閉じられた後にこのソケットの使用を試みていることを示します。

例 1

コピー
     private Socket s;
 
     private void message(final Socket s, final String message) {
         try {
             s.getOutputStream().write(message.getBytes());
         } catch (IOException e) {
             try {
                 s.close();
             } catch (IOException e1) {
                 //ignore
             }
         }
     }
 
     public void handshake() {
         message(s, "hello");
     }
 
     public void requestData(final String key) throws IOException {
         handshake();
         message(s, "get_data[" + key + ']');
     }

UF.SOCK が 36 行目のスニペットについて報告されています。 20 行目で IOExcpetion がスローされた場合、23 行目で 'socket' が閉じられます。しかし、ソケットが閉じられているかどうかにかかわらず、36 行目で呼び出されるメソッド 'message' でソケットへの書き込みが試みられます。