test/java/util/zip/ZipFile/ReadZip.java

Print this page
rev 3516 : 7021582: convert jar/zip code and tests to use try-with-resources
Reviewed-by: alanb, dholmes, sherman

*** 25,34 **** --- 25,37 ---- @bug 4241361 4842702 4985614 6646605 5032358 6923692 @summary Make sure we can read a zip file. */ import java.io.*; + import java.nio.file.Files; + import java.nio.file.StandardCopyOption; + import java.nio.file.StandardOpenOption; import java.util.zip.*; public class ReadZip { private static void unreached (Object o) throws Exception
*** 36,48 **** // Should never get here throw new Exception ("Expected exception was not thrown"); } public static void main(String args[]) throws Exception { ! ZipFile zf = new ZipFile(new File(System.getProperty("test.src", "."), ! "input.zip")); ! // Make sure we throw NPE on null objects try { unreached (zf.getEntry(null)); } catch (NullPointerException e) {} try { unreached (zf.getInputStream(null)); } --- 39,50 ---- // Should never get here throw new Exception ("Expected exception was not thrown"); } public static void main(String args[]) throws Exception { ! try (ZipFile zf = new ZipFile(new File(System.getProperty("test.src", "."), ! "input.zip"))) { // Make sure we throw NPE on null objects try { unreached (zf.getEntry(null)); } catch (NullPointerException e) {} try { unreached (zf.getInputStream(null)); }
*** 50,110 **** ZipEntry ze = zf.getEntry("ReadZip.java"); if (ze == null) { throw new Exception("cannot read from zip file"); } ! zf.close(); // Make sure we can read the zip file that has some garbage // bytes padded at the end. ! FileInputStream fis = new FileInputStream( ! new File(System.getProperty("test.src", "."), ! "input.zip")); ! File newZip = new File(System.getProperty("test.dir", "."), ! "input2.zip"); ! FileOutputStream fos = new FileOutputStream(newZip); ! ! byte[] buf = new byte[1024]; ! int n = 0; ! while ((n = fis.read(buf)) != -1) { ! fos.write(buf, 0, n); ! } ! fis.close(); // pad some bytes ! fos.write(1); fos.write(3); fos.write(5); fos.write(7); ! fos.close(); ! try { ! zf = new ZipFile(newZip); ! ze = zf.getEntry("ReadZip.java"); if (ze == null) { throw new Exception("cannot read from zip file"); } } finally { - zf.close(); newZip.delete(); } // Read zip file comment try { ! ! ZipOutputStream zos = new ZipOutputStream( ! new FileOutputStream(newZip)); ! ze = new ZipEntry("ZipEntry"); zos.putNextEntry(ze); zos.write(1); zos.write(2); zos.write(3); zos.write(4); zos.closeEntry(); zos.setComment("This is the comment for testing"); ! zos.close(); ! zf = new ZipFile(newZip); ! ze = zf.getEntry("ZipEntry"); if (ze == null) throw new Exception("cannot read entry from zip file"); if (!"This is the comment for testing".equals(zf.getComment())) throw new Exception("cannot read comment from zip file"); } finally { - zf.close(); newZip.delete(); } // Throw a FNF exception when read a non-existing zip file try { unreached (new ZipFile( --- 52,104 ---- ZipEntry ze = zf.getEntry("ReadZip.java"); if (ze == null) { throw new Exception("cannot read from zip file"); } ! } // Make sure we can read the zip file that has some garbage // bytes padded at the end. ! File newZip = new File(System.getProperty("test.dir", "."), "input2.zip"); ! Files.copy(new File(System.getProperty("test.src", "."), "input.zip").toPath(), ! newZip.toPath(), StandardCopyOption.REPLACE_EXISTING); ! // pad some bytes ! try (OutputStream os = Files.newOutputStream(newZip.toPath(), ! StandardOpenOption.APPEND)) { ! os.write(1); os.write(3); os.write(5); os.write(7); ! } ! ! try (ZipFile zf = new ZipFile(newZip)) { ! ZipEntry ze = zf.getEntry("ReadZip.java"); if (ze == null) { throw new Exception("cannot read from zip file"); } } finally { newZip.delete(); } // Read zip file comment try { ! try (FileOutputStream fos = new FileOutputStream(newZip); ! ZipOutputStream zos = new ZipOutputStream(fos)) ! { ! ZipEntry ze = new ZipEntry("ZipEntry"); zos.putNextEntry(ze); zos.write(1); zos.write(2); zos.write(3); zos.write(4); zos.closeEntry(); zos.setComment("This is the comment for testing"); ! } ! try (ZipFile zf = new ZipFile(newZip)) { ! ZipEntry ze = zf.getEntry("ZipEntry"); if (ze == null) throw new Exception("cannot read entry from zip file"); if (!"This is the comment for testing".equals(zf.getComment())) throw new Exception("cannot read comment from zip file"); + } } finally { newZip.delete(); } // Throw a FNF exception when read a non-existing zip file try { unreached (new ZipFile(