From e7e99f061c7bf7cb73df38d26b3cff344012c5d6 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Fri, 18 Jul 2008 09:07:25 +0000 Subject: [PATCH] more explicit existence chacks in unzip/tar. PR 44843 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@677860 13f79535-47bb-0310-9956-ffa450edef68 --- src/main/org/apache/tools/ant/taskdefs/Expand.java | 5 +++++ src/main/org/apache/tools/ant/taskdefs/Untar.java | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/src/main/org/apache/tools/ant/taskdefs/Expand.java b/src/main/org/apache/tools/ant/taskdefs/Expand.java index 0f94bddad..124ba46b6 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Expand.java +++ b/src/main/org/apache/tools/ant/taskdefs/Expand.java @@ -122,6 +122,10 @@ public class Expand extends Task { if (source.isDirectory()) { throw new BuildException("Src must not be a directory." + " Use nested filesets instead.", getLocation()); + } else if (!source.exists()) { + throw new BuildException("src '" + source + "' doesn't exist."); + } else if (!source.canRead()) { + throw new BuildException("src '" + source + "' cannot be read."); } else { expandFile(FILE_UTILS, source, dest); } @@ -130,6 +134,7 @@ public class Expand extends Task { while (iter.hasNext()) { Resource r = (Resource) iter.next(); if (!r.isExists()) { + log("Skipping '" + r.getName() + "' because it doesn't exist."); continue; } diff --git a/src/main/org/apache/tools/ant/taskdefs/Untar.java b/src/main/org/apache/tools/ant/taskdefs/Untar.java index 5e3499076..967b473f8 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Untar.java +++ b/src/main/org/apache/tools/ant/taskdefs/Untar.java @@ -118,6 +118,13 @@ public class Untar extends Expand { * @since Ant 1.7 */ protected void expandResource(Resource srcR, File dir) { + if (!srcR.isExists()) { + throw new BuildException("Unable to untar " + + srcR.getName() + + " as the it does not exist", + getLocation()); + } + InputStream i = null; try { i = srcR.getInputStream();