UF.ZIP

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

例 1

コピー
     public static final void copy(InputStream in, OutputStream out) throws IOException {
         byte[] buffer = new byte[1024];
         int len;
 
         while ((len = in.read(buffer)) >= 0) {
             out.write(buffer, 0, len);
         }
 
         in.close();
         out.close();
     }
 
     public final void unzip(final ZipFile zipFile) {
         Enumeration entries;
         entries = zipFile.entries();
 
         try {
             while (entries.hasMoreElements()) {
                 ZipEntry entry = (ZipEntry) entries.nextElement();
 
                 if (entry.isDirectory()) {
                     final File dir = new File(entry.getName());
                     dir.mkdir();
                 } else {
                     try {
                         copy(zipFile.getInputStream(entry), new FileOutputStream(entry.getName()));
                     } catch (IOException e) {
                         zipFile.close();
                     }
                 }
             }
 
             zipFile.close();
         } catch (IOException e) {
             // do nothing
         }
     }

UF.ZIP が 43 行目のスニペットについて報告されています。IOException の場合、45 行目で 'zipFile' が閉じられますが、次回のサイクルの繰り返し時に、'zipFile' にアクセスしようと試みられます。