Browse Source

Avoid NPE in <zip> and friends for empty <fileset>s.

Submitted by:	Nico Seessle <nico at apache dot org>


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274176 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 22 years ago
parent
commit
6528412d21
3 changed files with 27 additions and 0 deletions
  1. +21
    -0
      src/etc/testcases/taskdefs/jar.xml
  2. +1
    -0
      src/main/org/apache/tools/ant/taskdefs/Zip.java
  3. +5
    -0
      src/testcases/org/apache/tools/ant/taskdefs/JarTest.java

+ 21
- 0
src/etc/testcases/taskdefs/jar.xml View File

@@ -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
- 0
src/main/org/apache/tools/ant/taskdefs/Zip.java View File

@@ -750,6 +750,7 @@ public class Zip extends MatchingTask {

for (int i = 0; i < filesets.length; i++) {
if (initialResources[i].length == 0) {
newerResources[i] = new Resource[] {};
continue;
}


+ 5
- 0
src/testcases/org/apache/tools/ant/taskdefs/JarTest.java View File

@@ -214,4 +214,9 @@ public class JarTest extends BuildFileTest {
"testRecreateZipfilesetWithUpdateNewerFile");
}

public void testCreateWithEmptyFileset() {
executeTarget("testCreateWithEmptyFilesetSetUp");
executeTarget("testCreateWithEmptyFileset");
executeTarget("testCreateWithEmptyFileset");
}
}

Loading…
Cancel
Save