From 529a3f82500986119406dd8c812ef4852e8233e8 Mon Sep 17 00:00:00 2001 From: Peter Reilly Date: Mon, 3 Sep 2007 15:29:45 +0000 Subject: [PATCH] revert readfully change, add in safeReadFully git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@572363 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/tools/ant/filters/ExpandProperties.java | 2 +- src/main/org/apache/tools/ant/taskdefs/Concat.java | 2 +- .../ant/taskdefs/condition/ResourceContains.java | 2 +- .../tools/ant/taskdefs/optional/ReplaceRegExp.java | 5 +---- .../tools/ant/types/mappers/FilterMapper.java | 2 +- src/main/org/apache/tools/ant/util/FileUtils.java | 13 ++++++++++++- .../org/apache/tools/ant/util/ScriptRunnerBase.java | 2 +- 7 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/main/org/apache/tools/ant/filters/ExpandProperties.java b/src/main/org/apache/tools/ant/filters/ExpandProperties.java index 190ff7001..a07ce5b6e 100644 --- a/src/main/org/apache/tools/ant/filters/ExpandProperties.java +++ b/src/main/org/apache/tools/ant/filters/ExpandProperties.java @@ -84,7 +84,7 @@ public final class ExpandProperties } } else { queuedData = readFully(); - if (queuedData.length() == 0) { + if (queuedData == null || queuedData.length() == 0) { ch = -1; } else { Project project = getProject(); diff --git a/src/main/org/apache/tools/ant/taskdefs/Concat.java b/src/main/org/apache/tools/ant/taskdefs/Concat.java index 485d91d89..fb56a705f 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Concat.java +++ b/src/main/org/apache/tools/ant/taskdefs/Concat.java @@ -140,7 +140,7 @@ public class Concat extends Task implements ResourceCollection { new InputStreamReader(new FileInputStream(file), this.encoding)); } - value = FileUtils.readFully(reader); + value = FileUtils.safeReadFully(reader); } catch (IOException ex) { throw new BuildException(ex); } finally { diff --git a/src/main/org/apache/tools/ant/taskdefs/condition/ResourceContains.java b/src/main/org/apache/tools/ant/taskdefs/condition/ResourceContains.java index 32518fa18..f636ad063 100644 --- a/src/main/org/apache/tools/ant/taskdefs/condition/ResourceContains.java +++ b/src/main/org/apache/tools/ant/taskdefs/condition/ResourceContains.java @@ -149,7 +149,7 @@ public class ResourceContains implements Condition { BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(resource.getInputStream())); - String contents = FileUtils.readFully(reader); + String contents = FileUtils.safeReadFully(reader); String sub = substring; if (!casesensitive) { contents = contents.toLowerCase(); diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java b/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java index 134dfd3de..b769e8a30 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java @@ -424,10 +424,7 @@ public class ReplaceRegExp extends Task { pw.flush(); } else { - String buf = FileUtils.readFully(br); - if (buf == null) { - buf = ""; - } + String buf = FileUtils.safeReadFully(br); String res = doReplace(regex, subs, buf, options); diff --git a/src/main/org/apache/tools/ant/types/mappers/FilterMapper.java b/src/main/org/apache/tools/ant/types/mappers/FilterMapper.java index 07f07cfe8..101fcb786 100644 --- a/src/main/org/apache/tools/ant/types/mappers/FilterMapper.java +++ b/src/main/org/apache/tools/ant/types/mappers/FilterMapper.java @@ -70,7 +70,7 @@ public class FilterMapper extends FilterChain implements FileNameMapper { Vector filterChains = new Vector(); filterChains.add(this); helper.setFilterChains(filterChains); - String result = FileUtils.readFully(helper.getAssembledReader()); + String result = FileUtils.safeReadFully(helper.getAssembledReader()); if (result.length() == 0) { return null; } else { diff --git a/src/main/org/apache/tools/ant/util/FileUtils.java b/src/main/org/apache/tools/ant/util/FileUtils.java index 95e463972..184427ed2 100644 --- a/src/main/org/apache/tools/ant/util/FileUtils.java +++ b/src/main/org/apache/tools/ant/util/FileUtils.java @@ -930,7 +930,18 @@ public class FileUtils { textBuffer.append(new String(buffer, 0, bufferLength)); } } - return (textBuffer == null) ? "" : textBuffer.toString(); + return (textBuffer == null) ? null : textBuffer.toString(); + } + + /** + * Safe read fully - do not return a null for an empty reader. + * @param reader the input to read from. + * @return the string. + * @throws IOException if unable to read from reader. + */ + public static String safeReadFully(Reader reader) throws IOException { + String ret = readFully(reader); + return ret == null ? "" : ret; } /** diff --git a/src/main/org/apache/tools/ant/util/ScriptRunnerBase.java b/src/main/org/apache/tools/ant/util/ScriptRunnerBase.java index 343a1c398..1bba545ae 100644 --- a/src/main/org/apache/tools/ant/util/ScriptRunnerBase.java +++ b/src/main/org/apache/tools/ant/util/ScriptRunnerBase.java @@ -213,7 +213,7 @@ public abstract class ScriptRunnerBase { BufferedReader in = null; try { in = new BufferedReader(reader); - script += FileUtils.readFully(in); + script += FileUtils.safeReadFully(in); } catch (IOException ex) { throw new BuildException("Failed to read " + name, ex); } finally {