bodewig 2003/02/26 01:57:01
Modified: src/etc/testcases/taskdefs jar.xml
src/main/org/apache/tools/ant/taskdefs Zip.java
src/testcases/org/apache/tools/ant/taskdefs JarTest.java
Log:
Avoid NPE in <zip> and friends for empty <fileset>s.
Submitted by: Nico Seessle <nico at apache dot org>
Revision Changes Path
1.9 +21 -0 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.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- jar.xml 23 Jan 2003 15:03:28 -0000 1.8
+++ jar.xml 26 Feb 2003 09:57:01 -0000 1.9
@@ -5,6 +5,8 @@
<property name="tmp.jar" location="tmp.jar"/>
<property name="tmp.dir" location="jartmp"/>
<property name="tmp.zip" location="tmp.zip"/>
+ <property name="tmp1.dir" location="jartmp1"/>
+ <property name="tmp2.dir" location="jartmp2"/>
<target name="test1">
<jar/>
@@ -166,6 +168,25 @@
<delete file="${tmp.jar}" />
<delete dir="${tmp.dir}"/>
<delete file="${tmp.zip}" />
+ <delete dir="${tmp1.dir}"/>
+ <delete dir="${tmp2.dir}"/>
+ </target>
+
+ <target name="testCreateWithEmptyFilesetSetUp">
+ <mkdir dir="${tmp1.dir}"/>
+ <mkdir dir="${tmp2.dir}"/>
+ <echo file="${tmp2.dir}/foo.txt" message="foo"/>
+ </target>
+
+ <target name="testCreateWithEmptyFileset">
+ <jar destfile="${tmp.jar}">
+ <fileset dir="${tmp1.dir}">
+ <include name="**/*.doesNotExist"/>
+ </fileset>
+ <fileset dir="${tmp2.dir}">
+ <include name="**/foo.txt"/>
+ </fileset>
+ </jar>
</target>
</project>
1.98 +1 -0 ant/src/main/org/apache/tools/ant/taskdefs/Zip.java
Index: Zip.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Zip.java,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -r1.97 -r1.98
--- Zip.java 19 Feb 2003 07:57:29 -0000 1.97
+++ Zip.java 26 Feb 2003 09:57:01 -0000 1.98
@@ -750,6 +750,7 @@
for (int i = 0; i < filesets.length; i++) {
if (initialResources[i].length == 0) {
+ newerResources[i] = new Resource[] {};
continue;
}
1.18 +5 -0
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.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- JarTest.java 20 Feb 2003 17:15:46 -0000 1.17
+++ JarTest.java 26 Feb 2003 09:57:01 -0000 1.18
@@ -214,4 +214,9 @@
"testRecreateZipfilesetWithUpdateNewerFile");
}
+ public void testCreateWithEmptyFileset() {
+ executeTarget("testCreateWithEmptyFilesetSetUp");
+ executeTarget("testCreateWithEmptyFileset");
+ executeTarget("testCreateWithEmptyFileset");
+ }
}