From af00b2e81d0ba602010bf46111d71a31a832cd74 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Wed, 2 Apr 2003 16:20:13 +0000 Subject: [PATCH] Make sure that streams get closed git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274380 13f79535-47bb-0310-9956-ffa450edef68 --- src/etc/testcases/taskdefs/jar.xml | 6 +- .../apache/tools/ant/taskdefs/JarTest.java | 65 ++++++++++++++++--- 2 files changed, 60 insertions(+), 11 deletions(-) diff --git a/src/etc/testcases/taskdefs/jar.xml b/src/etc/testcases/taskdefs/jar.xml index 2eaee82a9..73b86141f 100644 --- a/src/etc/testcases/taskdefs/jar.xml +++ b/src/etc/testcases/taskdefs/jar.xml @@ -201,11 +201,13 @@ - - + + + + diff --git a/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java b/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java index fb51ecb49..4c8083110 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java @@ -54,8 +54,11 @@ package org.apache.tools.ant.taskdefs; +import java.io.BufferedReader; import java.io.File; import java.io.FileReader; +import java.io.InputStream; +import java.io.InputStreamReader; import java.io.IOException; import java.io.Reader; import java.util.Date; @@ -230,17 +233,61 @@ public class JarTest extends BuildFileTest { assertTrue(jarXml.exists()); } + // bugzilla report 10262 public void testNoDuplicateIndex() throws IOException { - executeTarget("testNoDuplicateIndex"); - ZipFile archive = new ZipFile(getProject().resolveFile(tempJar)); - Enumeration enum = archive.entries(); - int numberOfIndexLists = 0; - while (enum.hasMoreElements()) { - ZipEntry ze = (ZipEntry) enum.nextElement(); - if (ze.getName().equals("META-INF/INDEX.LIST")) { - numberOfIndexLists++; + ZipFile archive = null; + try { + executeTarget("testIndexTests"); + archive = new ZipFile(getProject().resolveFile(tempJar)); + Enumeration enum = archive.entries(); + int numberOfIndexLists = 0; + while (enum.hasMoreElements()) { + ZipEntry ze = (ZipEntry) enum.nextElement(); + if (ze.getName().equals("META-INF/INDEX.LIST")) { + numberOfIndexLists++; + } + } + assertEquals(1, numberOfIndexLists); + } finally { + if (archive != null) { + archive.close(); + } + } + } + + // bugzilla report 16972 + public void XtestRootFilesInIndex() throws IOException { + ZipFile archive = null; + try { + executeTarget("testIndexTests"); + archive = new ZipFile(getProject().resolveFile(tempJar)); + ZipEntry ze = archive.getEntry("META-INF/INDEX.LIST"); + InputStream is = archive.getInputStream(ze); + BufferedReader r = new BufferedReader(new InputStreamReader(is, + "UTF8")); + boolean foundSub = false; + boolean foundSubFoo = false; + boolean foundFoo = false; + + String line = r.readLine(); + while (line != null) { + if (line.equals("foo")) { + foundFoo = true; + } else if (line.equals("sub")) { + foundSub = true; + } else if (line.equals("sub/foo")) { + foundSubFoo = true; + } + line = r.readLine(); + } + + assertTrue(foundSub); + assertTrue(!foundSubFoo); + assertTrue(foundFoo); + } finally { + if (archive != null) { + archive.close(); } } - assertEquals(1, numberOfIndexLists); } }