EN JP CN

UF.SOCK

UF.SOCK

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

例 1

16     private Socket s;
17 
18     private void message(final Socket s, final String message) {
19         try {
20             s.getOutputStream().write(message.getBytes());
21         } catch (IOException e) {
22             try {
23                 s.close();
24             } catch (IOException e1) {
25                 //ignore
26             }
27         }
28     }
29 
30     public void handshake() {
31         message(s, "hello");
32     }
33 
34     public void requestData(final String key) throws IOException {
35         handshake();
36         message(s, "get_data[" + key + ']');
37     }

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