bodewig 2003/04/02 08:20:14
Modified: src/etc/testcases/taskdefs jar.xml
src/testcases/org/apache/tools/ant/taskdefs JarTest.java
Log:
Make sure that streams get closed
Revision Changes Path
1.12 +4 -2 ant/src/etc/testcases/taskdefs/jar.xml
Index: jar.xml
===================================================================
RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/jar.xml,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- jar.xml 2 Apr 2003 15:53:37 -0000 1.11
+++ jar.xml 2 Apr 2003 16:20:13 -0000 1.12
@@ -201,11 +201,13 @@
<unzip src="${tmp.jar}" dest="${tmp.dir}"/>
</target>
- <!-- bug 10262 -->
- <target name="testNoDuplicateIndex">
+ <!-- bugs 10262 and 16972 -->
+ <target name="testIndexTests">
<mkdir dir="${tmp.dir}/META-INF"/>
<touch file="${tmp.dir}/META-INF/INDEX.LIST"/>
<touch file="${tmp.dir}/foo"/>
+ <mkdir dir="${tmp.dir}/sub"/>
+ <touch file="${tmp.dir}/sub/foo"/>
<jar destfile="${tmp.jar}" index="yes" basedir="${tmp.dir}"/>
</target>
</project>
1.21 +56 -9
ant/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java
Index: JarTest.java
===================================================================
RCS file:
/home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- JarTest.java 2 Apr 2003 15:53:38 -0000 1.20
+++ JarTest.java 2 Apr 2003 16:20:13 -0000 1.21
@@ -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 @@
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);
}
}