Sonar-Verstoß: "Methode kann Stream aufgrund einer Ausnahme möglicherweise nicht schließen"

Ich habe diese Methode:

 private void unZipElementsTo(String inputZipFileName, String destPath) throws FileNotFoundException, IOException {

        OutputStream out = null;
        InputStream in = null;
        ZipFile zf = null;

        try {
            zf = new ZipFile(inputZipFileName);

            for (Enumeration<? extends ZipEntry> em = zf.entries(); em.hasMoreElements();) {
                ZipEntry entry = em.nextElement();
                String targetFile = destPath + FILE_SEPARATOR + entry.toString().replace("/", FILE_SEPARATOR);
                File temp = new File(targetFile);

                if (!temp.getParentFile().exists()) {
                    temp.getParentFile().mkdirs();
                }

                in = zf.getInputStream(entry);

                out = new FileOutputStream(targetFile);
                byte[] buf = new byte[4096];
                int len;
                while ((len = in.read(buf)) > 0) {
                    out.write(buf, 0, len);
                }
                out.flush();
                out.close();
                in.close();
            }
        }
        finally
        {
            if (out!=null) out.close();
            if (zf!=null) zf.close();
            if (in!=null) in.close();
        }
    }

Für diese Methode Sonar geben Sie mir diese Verletzung:

Schlechte Vorgehensweise - Die Methode kann möglicherweise den Stream ausnahmsweise nicht schließen. UnZipElementsTo (String, String) kann möglicherweise den Stream ausnahmsweise nicht schließen

Aber ich sehe dort keine Verstöße. Vielleicht ist es nur eine Falschmeldung?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage