test/java/util/zip/ZipFile/Comment.java

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

*** 55,90 **** } private static void writeZipFile(String name, String comment) throws IOException { ! ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(name)); ! try { zos.setComment(comment); ZipEntry ze = new ZipEntry(entryName); ze.setMethod(ZipEntry.DEFLATED); zos.putNextEntry(ze); new DataOutputStream(zos).writeUTF(entryContents); zos.closeEntry(); - } finally { - zos.close(); } } private static void verifyZipFile(String name, String comment) throws Exception { // Check that Zip entry was correctly written. ! ZipFile zipFile = new ZipFile(name); ZipEntry zipEntry = zipFile.getEntry(entryName); InputStream is = zipFile.getInputStream(zipEntry); String result = new DataInputStream(is).readUTF(); if (!result.equals(entryContents)) throw new Exception("Entry contents corrupted"); // Check that comment length was correctly written. - RandomAccessFile file = new RandomAccessFile(name, "r"); file.seek(file.length() - comment.length() - ZipFile.ENDHDR + ZipFile.ENDCOM); int b1 = file.readUnsignedByte(); int b2 = file.readUnsignedByte(); if (b1 + (b2 << 8) != comment.length()) --- 55,90 ---- } private static void writeZipFile(String name, String comment) throws IOException { ! try (FileOutputStream fos = new FileOutputStream(name); ! ZipOutputStream zos = new ZipOutputStream(fos)) ! { zos.setComment(comment); ZipEntry ze = new ZipEntry(entryName); ze.setMethod(ZipEntry.DEFLATED); zos.putNextEntry(ze); new DataOutputStream(zos).writeUTF(entryContents); zos.closeEntry(); } } private static void verifyZipFile(String name, String comment) throws Exception { // Check that Zip entry was correctly written. ! try (ZipFile zipFile = new ZipFile(name)) { ZipEntry zipEntry = zipFile.getEntry(entryName); InputStream is = zipFile.getInputStream(zipEntry); String result = new DataInputStream(is).readUTF(); if (!result.equals(entryContents)) throw new Exception("Entry contents corrupted"); + } + try (RandomAccessFile file = new RandomAccessFile(name, "r")) { // Check that comment length was correctly written. file.seek(file.length() - comment.length() - ZipFile.ENDHDR + ZipFile.ENDCOM); int b1 = file.readUnsignedByte(); int b2 = file.readUnsignedByte(); if (b1 + (b2 << 8) != comment.length())
*** 92,106 **** // Check that comment was correctly written. file.seek(file.length() - comment.length()); byte [] bytes = new byte [comment.length()]; file.readFully(bytes); - zipFile.close(); - file.close(); if (! comment.equals(new String(bytes, "UTF8"))) throw new Exception("Zip file comment corrupted"); } private static String buildComment(int length) { StringBuffer result = new StringBuffer(); while (result.length() < length) { /* Endhdr is 22 bytes long, so this pattern makes it easy --- 92,105 ---- // Check that comment was correctly written. file.seek(file.length() - comment.length()); byte [] bytes = new byte [comment.length()]; file.readFully(bytes); if (! comment.equals(new String(bytes, "UTF8"))) throw new Exception("Zip file comment corrupted"); } + } private static String buildComment(int length) { StringBuffer result = new StringBuffer(); while (result.length() < length) { /* Endhdr is 22 bytes long, so this pattern makes it easy