| @@ -347,7 +347,6 @@ public class ScpToMessage extends AbstractSshMessage { | |||||
| waitForAck(in); | waitForAck(in); | ||||
| // send a content of lfile | // send a content of lfile | ||||
| final InputStream fis = Files.newInputStream(localFile.toPath()); | |||||
| final byte[] buf = new byte[BUFFER_SIZE]; | final byte[] buf = new byte[BUFFER_SIZE]; | ||||
| final long startTime = System.currentTimeMillis(); | final long startTime = System.currentTimeMillis(); | ||||
| long totalLength = 0; | long totalLength = 0; | ||||
| @@ -359,7 +358,7 @@ public class ScpToMessage extends AbstractSshMessage { | |||||
| final long initFilesize = filesize; | final long initFilesize = filesize; | ||||
| int percentTransmitted = 0; | int percentTransmitted = 0; | ||||
| try { | |||||
| try (InputStream fis = Files.newInputStream(localFile.toPath())) { | |||||
| if (this.getVerbose()) { | if (this.getVerbose()) { | ||||
| log("Sending: " + localFile.getName() + " : " + localFile.length()); | log("Sending: " + localFile.getName() + " : " + localFile.length()); | ||||
| } | } | ||||
| @@ -385,7 +384,6 @@ public class ScpToMessage extends AbstractSshMessage { | |||||
| final long endTime = System.currentTimeMillis(); | final long endTime = System.currentTimeMillis(); | ||||
| logStats(startTime, endTime, totalLength); | logStats(startTime, endTime, totalLength); | ||||
| } | } | ||||
| fis.close(); | |||||
| } | } | ||||
| } | } | ||||
| @@ -46,15 +46,8 @@ public class FileUtilities { | |||||
| * @throws IOException on error reading the file (not existing, not readable etc) | * @throws IOException on error reading the file (not existing, not readable etc) | ||||
| */ | */ | ||||
| public static String getFileContents(File file) throws IOException { | public static String getFileContents(File file) throws IOException { | ||||
| FileReader rdr = null; | |||||
| try { | |||||
| rdr = new FileReader(file); | |||||
| return FileUtils.readFully(rdr); | |||||
| } | |||||
| finally { | |||||
| if (rdr != null) { | |||||
| rdr.close(); | |||||
| } | |||||
| try (FileReader rdr = new FileReader(file)) { | |||||
| return FileUtils.readFully(rdr); | |||||
| } | } | ||||
| } | } | ||||
| @@ -298,11 +298,8 @@ public class CopyTest { | |||||
| assertTrue("Source file " + srcFile + " was expected to be a file", srcFile.isFile()); | assertTrue("Source file " + srcFile + " was expected to be a file", srcFile.isFile()); | ||||
| final long originalFileSize = srcFile.length(); | final long originalFileSize = srcFile.length(); | ||||
| final String originalContent; | final String originalContent; | ||||
| final BufferedReader reader = new BufferedReader(new FileReader(srcFile)); | |||||
| try { | |||||
| try (BufferedReader reader = new BufferedReader(new FileReader(srcFile))) { | |||||
| originalContent = FileUtils.readFully(reader); | originalContent = FileUtils.readFully(reader); | ||||
| } finally { | |||||
| reader.close(); | |||||
| } | } | ||||
| assertTrue("Content missing in file " + srcFile, originalContent != null && originalContent.length() > 0); | assertTrue("Content missing in file " + srcFile, originalContent != null && originalContent.length() > 0); | ||||
| @@ -324,12 +321,9 @@ public class CopyTest { | |||||
| private void assertSizeAndContent(final File file, final long expectedSize, final String expectedContent) throws IOException { | private void assertSizeAndContent(final File file, final long expectedSize, final String expectedContent) throws IOException { | ||||
| assertTrue(file + " was expected to be a file", file.isFile()); | assertTrue(file + " was expected to be a file", file.isFile()); | ||||
| assertEquals("Unexpected size of file " + file, expectedSize, file.length()); | assertEquals("Unexpected size of file " + file, expectedSize, file.length()); | ||||
| final BufferedReader reader = new BufferedReader(new FileReader(file)); | |||||
| final String content; | final String content; | ||||
| try { | |||||
| try (BufferedReader reader = new BufferedReader(new FileReader(file))) { | |||||
| content = FileUtils.readFully(reader); | content = FileUtils.readFully(reader); | ||||
| } finally { | |||||
| reader.close(); | |||||
| } | } | ||||
| assertEquals("Unexpected content in file " + file, expectedContent, content); | assertEquals("Unexpected content in file " + file, expectedContent, content); | ||||
| } | } | ||||
| @@ -75,16 +75,13 @@ public class ExecStreamRedirectorTest { | |||||
| } | } | ||||
| private static byte[] readAllBytes(final File file) throws IOException { | private static byte[] readAllBytes(final File file) throws IOException { | ||||
| final FileInputStream fis = new FileInputStream(file); | |||||
| final ByteArrayOutputStream bos = new ByteArrayOutputStream(); | final ByteArrayOutputStream bos = new ByteArrayOutputStream(); | ||||
| try { | |||||
| try (FileInputStream fis = new FileInputStream(file)) { | |||||
| final byte[] dataChunk = new byte[1024]; | final byte[] dataChunk = new byte[1024]; | ||||
| int numRead = -1; | int numRead = -1; | ||||
| while ((numRead = fis.read(dataChunk)) > 0) { | while ((numRead = fis.read(dataChunk)) > 0) { | ||||
| bos.write(dataChunk, 0, numRead); | bos.write(dataChunk, 0, numRead); | ||||
| } | } | ||||
| } finally { | |||||
| fis.close(); | |||||
| } | } | ||||
| return bos.toByteArray(); | return bos.toByteArray(); | ||||
| } | } | ||||
| @@ -237,11 +237,8 @@ public class FixCrLfTest { | |||||
| fail("Expected file " + result + " doesn\'t exist"); | fail("Expected file " + result + " doesn\'t exist"); | ||||
| } | } | ||||
| InputStream inExpect = null; | |||||
| InputStream inResult = null; | |||||
| try { | |||||
| inExpect = new BufferedInputStream(new FileInputStream(expect)); | |||||
| inResult = new BufferedInputStream(new FileInputStream(result)); | |||||
| try (InputStream inExpect = new BufferedInputStream(new FileInputStream(expect)); | |||||
| InputStream inResult = new BufferedInputStream(new FileInputStream(result))) { | |||||
| int expectedByte = inExpect.read(); | int expectedByte = inExpect.read(); | ||||
| while (expectedByte != -1) { | while (expectedByte != -1) { | ||||
| @@ -249,13 +246,6 @@ public class FixCrLfTest { | |||||
| expectedByte = inExpect.read(); | expectedByte = inExpect.read(); | ||||
| } | } | ||||
| assertEquals("End of file", -1, inResult.read()); | assertEquals("End of file", -1, inResult.read()); | ||||
| } finally { | |||||
| if (inResult != null) { | |||||
| inResult.close(); | |||||
| } | |||||
| if (inExpect != null) { | |||||
| inExpect.close(); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -56,15 +56,12 @@ public class InitializeClassTest { | |||||
| buildRule.executeTarget("forked"); | buildRule.executeTarget("forked"); | ||||
| synchronized (System.out) { | synchronized (System.out) { | ||||
| PrintStream ps = System.out; | PrintStream ps = System.out; | ||||
| PrintStream newps = new PrintStream(new FileOutputStream(f2)); | |||||
| try { | |||||
| System.setOut(newps); | |||||
| buildRule.getProject().executeTarget("unforked"); | |||||
| } finally { | |||||
| System.setOut(ps); | |||||
| newps.close(); | |||||
| } | |||||
| try (PrintStream newps = new PrintStream(new FileOutputStream(f2))) { | |||||
| System.setOut(newps); | |||||
| buildRule.getProject().executeTarget("unforked"); | |||||
| } finally { | |||||
| System.setOut(ps); | |||||
| } | |||||
| } | } | ||||
| assertEquals(FileUtilities.getFileContents(f1), FileUtilities.getFileContents(f2)); | assertEquals(FileUtilities.getFileContents(f1), FileUtilities.getFileContents(f2)); | ||||
| } | } | ||||
| @@ -261,10 +261,8 @@ public class JarTest { | |||||
| // bugzilla report 10262 | // bugzilla report 10262 | ||||
| @Test | @Test | ||||
| public void testNoDuplicateIndex() throws IOException { | public void testNoDuplicateIndex() throws IOException { | ||||
| ZipFile archive = null; | |||||
| try { | |||||
| buildRule.executeTarget("testIndexTests"); | |||||
| archive = new ZipFile(new File(getOutputDir(), tempJar)); | |||||
| buildRule.executeTarget("testIndexTests"); | |||||
| try (ZipFile archive = new ZipFile(new File(getOutputDir(), tempJar))) { | |||||
| Enumeration<? extends ZipEntry> e = archive.entries(); | Enumeration<? extends ZipEntry> e = archive.entries(); | ||||
| int numberOfIndexLists = 0; | int numberOfIndexLists = 0; | ||||
| while (e.hasMoreElements()) { | while (e.hasMoreElements()) { | ||||
| @@ -274,24 +272,17 @@ public class JarTest { | |||||
| } | } | ||||
| } | } | ||||
| assertEquals(1, numberOfIndexLists); | assertEquals(1, numberOfIndexLists); | ||||
| } finally { | |||||
| if (archive != null) { | |||||
| archive.close(); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| // bugzilla report 16972 | // bugzilla report 16972 | ||||
| @Test | @Test | ||||
| public void testRootFilesInIndex() throws IOException { | public void testRootFilesInIndex() throws IOException { | ||||
| ZipFile archive = null; | |||||
| try { | |||||
| buildRule.executeTarget("testIndexTests"); | |||||
| archive = new ZipFile(new File(getOutputDir(), tempJar)); | |||||
| buildRule.executeTarget("testIndexTests"); | |||||
| try (ZipFile archive = new ZipFile(new File(getOutputDir(), tempJar))) { | |||||
| ZipEntry ze = archive.getEntry("META-INF/INDEX.LIST"); | ZipEntry ze = archive.getEntry("META-INF/INDEX.LIST"); | ||||
| InputStream is = archive.getInputStream(ze); | InputStream is = archive.getInputStream(ze); | ||||
| BufferedReader r = new BufferedReader(new InputStreamReader(is, | |||||
| "UTF8")); | |||||
| BufferedReader r = new BufferedReader(new InputStreamReader(is, "UTF8")); | |||||
| boolean foundSub = false; | boolean foundSub = false; | ||||
| boolean foundSubFoo = false; | boolean foundSubFoo = false; | ||||
| boolean foundFoo = false; | boolean foundFoo = false; | ||||
| @@ -311,10 +302,6 @@ public class JarTest { | |||||
| assertTrue(foundSub); | assertTrue(foundSub); | ||||
| assertTrue(!foundSubFoo); | assertTrue(!foundSubFoo); | ||||
| assertTrue(foundFoo); | assertTrue(foundFoo); | ||||
| } finally { | |||||
| if (archive != null) { | |||||
| archive.close(); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @Test | @Test | ||||
| @@ -506,22 +506,13 @@ public class JavaTest { | |||||
| if (argv.length >= 2) { | if (argv.length >= 2) { | ||||
| logFile = argv[1]; | logFile = argv[1]; | ||||
| } | } | ||||
| OutputStreamWriter out = null; | |||||
| Thread.sleep(sleepTime * 1000); | Thread.sleep(sleepTime * 1000); | ||||
| try { | |||||
| File dest = new File(logFile); | |||||
| FileOutputStream fos = new FileOutputStream(dest); | |||||
| out = new OutputStreamWriter(fos); | |||||
| File dest = new File(logFile); | |||||
| try (OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(dest))) { | |||||
| out.write("bye bye\n"); | out.write("bye bye\n"); | ||||
| } catch (Exception ex) { | } catch (Exception ex) { | ||||
| } finally { | |||||
| try { | |||||
| out.close(); | |||||
| } catch (IOException ioe) { | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -287,8 +287,7 @@ public class ManifestTest { | |||||
| assertEquals("NOT_LONG_NAME_VALUE_MISMATCH", VALUE, value); | assertEquals("NOT_LONG_NAME_VALUE_MISMATCH", VALUE, value); | ||||
| Set<String> set = new HashSet<>(); | Set<String> set = new HashSet<>(); | ||||
| FileReader fin = new FileReader(expandedManifest); | |||||
| try { | |||||
| try (FileReader fin = new FileReader(expandedManifest)) { | |||||
| BufferedReader in = new BufferedReader(fin); | BufferedReader in = new BufferedReader(fin); | ||||
| String read = in.readLine(); | String read = in.readLine(); | ||||
| @@ -297,8 +296,6 @@ public class ManifestTest { | |||||
| read = in.readLine(); | read = in.readLine(); | ||||
| } | } | ||||
| in.close(); | in.close(); | ||||
| } finally { | |||||
| fin.close(); | |||||
| } | } | ||||
| assertTrue("Manifest file should have contained string ", | assertTrue("Manifest file should have contained string ", | ||||
| @@ -465,11 +462,8 @@ public class ManifestTest { | |||||
| * Reads mftest.mf. | * Reads mftest.mf. | ||||
| */ | */ | ||||
| private Manifest getManifest(File file) throws IOException, ManifestException { | private Manifest getManifest(File file) throws IOException, ManifestException { | ||||
| FileReader r = new FileReader(file); | |||||
| try { | |||||
| try (FileReader r = new FileReader(file)) { | |||||
| return new Manifest(r); | return new Manifest(r); | ||||
| } finally { | |||||
| r.close(); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -157,25 +157,14 @@ public class ReplaceTest { | |||||
| fail("Expected file " + result + " doesn\'t exist"); | fail("Expected file " + result + " doesn\'t exist"); | ||||
| } | } | ||||
| InputStream inExpect = null; | |||||
| InputStream inResult = null; | |||||
| try { | |||||
| inExpect = new BufferedInputStream(new FileInputStream(expect)); | |||||
| inResult = new BufferedInputStream(new FileInputStream(result)); | |||||
| try (InputStream inExpect = new BufferedInputStream(new FileInputStream(expect)); | |||||
| InputStream inResult = new BufferedInputStream(new FileInputStream(result))) { | |||||
| int expectedByte = inExpect.read(); | int expectedByte = inExpect.read(); | ||||
| while (expectedByte != -1) { | while (expectedByte != -1) { | ||||
| assertEquals(expectedByte, inResult.read()); | assertEquals(expectedByte, inResult.read()); | ||||
| expectedByte = inExpect.read(); | expectedByte = inExpect.read(); | ||||
| } | } | ||||
| assertEquals("End of file", -1, inResult.read()); | assertEquals("End of file", -1, inResult.read()); | ||||
| } finally { | |||||
| if (inResult != null) { | |||||
| inResult.close(); | |||||
| } | |||||
| if (inExpect != null) { | |||||
| inExpect.close(); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -102,7 +102,6 @@ public class ZipTest { | |||||
| if (zfPrefixAddsDir != null) { | if (zfPrefixAddsDir != null) { | ||||
| zfPrefixAddsDir.close(); | zfPrefixAddsDir.close(); | ||||
| } | } | ||||
| } catch (IOException e) { | } catch (IOException e) { | ||||
| //ignored | //ignored | ||||
| } | } | ||||
| @@ -217,15 +216,8 @@ public class ZipTest { | |||||
| @Test | @Test | ||||
| public void testDefaultExcludesAndUpdate() throws IOException { | public void testDefaultExcludesAndUpdate() throws IOException { | ||||
| buildRule.executeTarget("testDefaultExcludesAndUpdate"); | buildRule.executeTarget("testDefaultExcludesAndUpdate"); | ||||
| ZipFile f = null; | |||||
| try { | |||||
| f = new ZipFile(new File(buildRule.getProject().getProperty("output"), "test3.zip")); | |||||
| assertNotNull("ziptest~ should be included", | |||||
| f.getEntry("ziptest~")); | |||||
| } finally { | |||||
| if (f != null) { | |||||
| f.close(); | |||||
| } | |||||
| try (ZipFile f = new ZipFile(new File(buildRule.getProject().getProperty("output"), "test3.zip"))) { | |||||
| assertNotNull("ziptest~ should be included", f.getEntry("ziptest~")); | |||||
| } | } | ||||
| } | } | ||||
| @@ -242,60 +234,36 @@ public class ZipTest { | |||||
| @Test | @Test | ||||
| public void testTarFileSet() throws IOException { | public void testTarFileSet() throws IOException { | ||||
| buildRule.executeTarget("testTarFileSet"); | buildRule.executeTarget("testTarFileSet"); | ||||
| org.apache.tools.zip.ZipFile zf = null; | |||||
| try { | |||||
| zf = new org.apache.tools.zip.ZipFile(new File(buildRule.getProject().getProperty("output"), "test3.zip")); | |||||
| try (org.apache.tools.zip.ZipFile zf = new org.apache.tools.zip.ZipFile(new File(buildRule.getProject().getProperty("output"), "test3.zip"))) { | |||||
| org.apache.tools.zip.ZipEntry ze = zf.getEntry("asf-logo.gif"); | org.apache.tools.zip.ZipEntry ze = zf.getEntry("asf-logo.gif"); | ||||
| assertEquals(UnixStat.FILE_FLAG | 0446, ze.getUnixMode()); | assertEquals(UnixStat.FILE_FLAG | 0446, ze.getUnixMode()); | ||||
| } finally { | |||||
| if (zf != null) { | |||||
| zf.close(); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @Test | @Test | ||||
| public void testRewriteZeroPermissions() throws IOException { | public void testRewriteZeroPermissions() throws IOException { | ||||
| buildRule.executeTarget("rewriteZeroPermissions"); | buildRule.executeTarget("rewriteZeroPermissions"); | ||||
| org.apache.tools.zip.ZipFile zf = null; | |||||
| try { | |||||
| zf = new org.apache.tools.zip.ZipFile(new File(buildRule.getProject().getProperty("output"), "test3.zip")); | |||||
| try (org.apache.tools.zip.ZipFile zf = new org.apache.tools.zip.ZipFile(new File(buildRule.getProject().getProperty("output"), "test3.zip"))) { | |||||
| org.apache.tools.zip.ZipEntry ze = zf.getEntry("testdir/test.txt"); | org.apache.tools.zip.ZipEntry ze = zf.getEntry("testdir/test.txt"); | ||||
| assertEquals(UnixStat.FILE_FLAG | 0644, ze.getUnixMode()); | assertEquals(UnixStat.FILE_FLAG | 0644, ze.getUnixMode()); | ||||
| } finally { | |||||
| if (zf != null) { | |||||
| zf.close(); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @Test | @Test | ||||
| public void testAcceptZeroPermissions() throws IOException { | public void testAcceptZeroPermissions() throws IOException { | ||||
| buildRule.executeTarget("acceptZeroPermissions"); | buildRule.executeTarget("acceptZeroPermissions"); | ||||
| org.apache.tools.zip.ZipFile zf = null; | |||||
| try { | |||||
| zf = new org.apache.tools.zip.ZipFile(new File(buildRule.getProject().getProperty("output"), "test3.zip")); | |||||
| try (org.apache.tools.zip.ZipFile zf = new org.apache.tools.zip.ZipFile(new File(buildRule.getProject().getProperty("output"), "test3.zip"))) { | |||||
| org.apache.tools.zip.ZipEntry ze = zf.getEntry("testdir/test.txt"); | org.apache.tools.zip.ZipEntry ze = zf.getEntry("testdir/test.txt"); | ||||
| assertEquals(0000, ze.getUnixMode()); | assertEquals(0000, ze.getUnixMode()); | ||||
| } finally { | |||||
| if (zf != null) { | |||||
| zf.close(); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @Test | @Test | ||||
| public void testForBugzilla34764() throws IOException { | public void testForBugzilla34764() throws IOException { | ||||
| buildRule.executeTarget("testForBugzilla34764"); | buildRule.executeTarget("testForBugzilla34764"); | ||||
| org.apache.tools.zip.ZipFile zf = null; | |||||
| try { | |||||
| zf = new org.apache.tools.zip.ZipFile(new File(buildRule.getProject().getProperty("output"), "test3.zip")); | |||||
| try (org.apache.tools.zip.ZipFile zf = new org.apache.tools.zip.ZipFile(new File(buildRule.getProject().getProperty("output"), "test3.zip"))) { | |||||
| org.apache.tools.zip.ZipEntry ze = zf.getEntry("file1"); | org.apache.tools.zip.ZipEntry ze = zf.getEntry("file1"); | ||||
| assertEquals(UnixStat.FILE_FLAG | 0644, ze.getUnixMode()); | assertEquals(UnixStat.FILE_FLAG | 0644, ze.getUnixMode()); | ||||
| } finally { | |||||
| if (zf != null) { | |||||
| zf.close(); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -221,17 +221,8 @@ public class EchoPropertiesTest { | |||||
| throws IOException { | throws IOException { | ||||
| File f = createRelativeFile(relativeFilename); | File f = createRelativeFile(relativeFilename); | ||||
| Properties props = new Properties(); | Properties props = new Properties(); | ||||
| InputStream in = null; | |||||
| try { | |||||
| in = new BufferedInputStream(new FileInputStream(f)); | |||||
| try (InputStream in = new BufferedInputStream(new FileInputStream(f))) { | |||||
| props.load(in); | props.load(in); | ||||
| } finally { | |||||
| if (in != null) { | |||||
| try { | |||||
| in.close(); | |||||
| } catch (IOException e) { | |||||
| } | |||||
| } | |||||
| } | } | ||||
| return props; | return props; | ||||
| } | } | ||||
| @@ -65,16 +65,10 @@ public class XMLFormatterWithCDATAOnSystemOut { | |||||
| // avoid endless loop | // avoid endless loop | ||||
| buildRule.executeTarget("run-junit"); | buildRule.executeTarget("run-junit"); | ||||
| File f = buildRule.getProject().resolveFile(REPORT); | File f = buildRule.getProject().resolveFile(REPORT); | ||||
| FileReader reader = null; | |||||
| try { | |||||
| reader = new FileReader(f); | |||||
| try (FileReader reader = new FileReader(f)) { | |||||
| String content = FileUtils.readFully(reader); | String content = FileUtils.readFully(reader); | ||||
| assertTrue(content.indexOf("</RESPONSE>]]>" | |||||
| + "</ERROR>") > 0); | |||||
| assertTrue(content.contains("</RESPONSE>]]></ERROR>")); | |||||
| } finally { | } finally { | ||||
| if (reader != null) { | |||||
| reader.close(); | |||||
| } | |||||
| f.delete(); | f.delete(); | ||||
| } | } | ||||
| } | } | ||||
| @@ -50,14 +50,11 @@ public class XMLResultAggregatorTest { | |||||
| } | } | ||||
| assertTrue(d.getAbsolutePath(), d.mkdir()); | assertTrue(d.getAbsolutePath(), d.mkdir()); | ||||
| File xml = new File(d, "x.xml"); | File xml = new File(d, "x.xml"); | ||||
| PrintWriter pw = new PrintWriter(new FileOutputStream(xml)); | |||||
| try { | |||||
| try (PrintWriter pw = new PrintWriter(new FileOutputStream(xml))) { | |||||
| pw.println("<testsuite errors='0' failures='0' name='my.UnitTest' tests='1'>"); | pw.println("<testsuite errors='0' failures='0' name='my.UnitTest' tests='1'>"); | ||||
| pw.println(" <testcase classname='my.UnitTest' name='testSomething'/>"); | pw.println(" <testcase classname='my.UnitTest' name='testSomething'/>"); | ||||
| pw.println("</testsuite>"); | pw.println("</testsuite>"); | ||||
| pw.flush(); | pw.flush(); | ||||
| } finally { | |||||
| pw.close(); | |||||
| } | } | ||||
| XMLResultAggregator task = new XMLResultAggregator(); | XMLResultAggregator task = new XMLResultAggregator(); | ||||
| task.setTodir(d); | task.setTodir(d); | ||||
| @@ -126,25 +126,23 @@ public class UTF8ZipFilesTest { | |||||
| ZipEncoding zipEncoding = ZipEncodingHelper.getZipEncoding(encoding); | ZipEncoding zipEncoding = ZipEncodingHelper.getZipEncoding(encoding); | ||||
| ZipOutputStream zos = null; | |||||
| try { | |||||
| zos = new ZipOutputStream(file); | |||||
| try (ZipOutputStream zos = new ZipOutputStream(file)) { | |||||
| zos.setEncoding(encoding); | zos.setEncoding(encoding); | ||||
| zos.setUseLanguageEncodingFlag(withEFS); | zos.setUseLanguageEncodingFlag(withEFS); | ||||
| zos.setCreateUnicodeExtraFields(withExplicitUnicodeExtra | zos.setCreateUnicodeExtraFields(withExplicitUnicodeExtra | ||||
| ? ZipOutputStream.UnicodeExtraFieldPolicy.NEVER | |||||
| : ZipOutputStream.UnicodeExtraFieldPolicy.ALWAYS); | |||||
| ? ZipOutputStream.UnicodeExtraFieldPolicy.NEVER | |||||
| : ZipOutputStream.UnicodeExtraFieldPolicy.ALWAYS); | |||||
| ZipEntry ze = new ZipEntry(OIL_BARREL_TXT); | ZipEntry ze = new ZipEntry(OIL_BARREL_TXT); | ||||
| if (withExplicitUnicodeExtra | if (withExplicitUnicodeExtra | ||||
| && !zipEncoding.canEncode(ze.getName())) { | |||||
| && !zipEncoding.canEncode(ze.getName())) { | |||||
| ByteBuffer en = zipEncoding.encode(ze.getName()); | ByteBuffer en = zipEncoding.encode(ze.getName()); | ||||
| ze.addExtraField(new UnicodePathExtraField(ze.getName(), | ze.addExtraField(new UnicodePathExtraField(ze.getName(), | ||||
| en.array(), | |||||
| en.arrayOffset(), | |||||
| en.limit())); | |||||
| en.array(), | |||||
| en.arrayOffset(), | |||||
| en.limit())); | |||||
| } | } | ||||
| zos.putNextEntry(ze); | zos.putNextEntry(ze); | ||||
| @@ -153,14 +151,14 @@ public class UTF8ZipFilesTest { | |||||
| ze = new ZipEntry(EURO_FOR_DOLLAR_TXT); | ze = new ZipEntry(EURO_FOR_DOLLAR_TXT); | ||||
| if (withExplicitUnicodeExtra | if (withExplicitUnicodeExtra | ||||
| && !zipEncoding.canEncode(ze.getName())) { | |||||
| && !zipEncoding.canEncode(ze.getName())) { | |||||
| ByteBuffer en = zipEncoding.encode(ze.getName()); | ByteBuffer en = zipEncoding.encode(ze.getName()); | ||||
| ze.addExtraField(new UnicodePathExtraField(ze.getName(), | ze.addExtraField(new UnicodePathExtraField(ze.getName(), | ||||
| en.array(), | |||||
| en.arrayOffset(), | |||||
| en.limit())); | |||||
| en.array(), | |||||
| en.arrayOffset(), | |||||
| en.limit())); | |||||
| } | } | ||||
| zos.putNextEntry(ze); | zos.putNextEntry(ze); | ||||
| @@ -170,27 +168,19 @@ public class UTF8ZipFilesTest { | |||||
| ze = new ZipEntry(ASCII_TXT); | ze = new ZipEntry(ASCII_TXT); | ||||
| if (withExplicitUnicodeExtra | if (withExplicitUnicodeExtra | ||||
| && !zipEncoding.canEncode(ze.getName())) { | |||||
| && !zipEncoding.canEncode(ze.getName())) { | |||||
| ByteBuffer en = zipEncoding.encode(ze.getName()); | ByteBuffer en = zipEncoding.encode(ze.getName()); | ||||
| ze.addExtraField(new UnicodePathExtraField(ze.getName(), | ze.addExtraField(new UnicodePathExtraField(ze.getName(), | ||||
| en.array(), | |||||
| en.arrayOffset(), | |||||
| en.limit())); | |||||
| en.array(), | |||||
| en.arrayOffset(), | |||||
| en.limit())); | |||||
| } | } | ||||
| zos.putNextEntry(ze); | zos.putNextEntry(ze); | ||||
| zos.write("ascii".getBytes("US-ASCII")); | zos.write("ascii".getBytes("US-ASCII")); | ||||
| zos.closeEntry(); | zos.closeEntry(); | ||||
| } finally { | |||||
| if (zos != null) { | |||||
| try { | |||||
| zos.close(); | |||||
| } catch (IOException e) { | |||||
| /* swallow */ | |||||
| } | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -247,12 +237,9 @@ public class UTF8ZipFilesTest { | |||||
| private static void assertCanRead(ZipFile zf, String fileName) throws IOException { | private static void assertCanRead(ZipFile zf, String fileName) throws IOException { | ||||
| ZipEntry entry = zf.getEntry(fileName); | ZipEntry entry = zf.getEntry(fileName); | ||||
| assertNotNull("Entry " + fileName + " doesn't exist", entry); | assertNotNull("Entry " + fileName + " doesn't exist", entry); | ||||
| InputStream is = zf.getInputStream(entry); | |||||
| assertNotNull("InputStream is null", is); | |||||
| try { | |||||
| try (InputStream is = zf.getInputStream(entry)) { | |||||
| assertNotNull("InputStream is null", is); | |||||
| is.read(); | is.read(); | ||||
| } finally { | |||||
| is.close(); | |||||
| } | } | ||||
| } | } | ||||