properly check return value of mapFileName https://bz.apache.org/bugzilla/show_bug.cgi?id=62076
Project: http://git-wip-us.apache.org/repos/asf/ant/repo Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/21b87000 Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/21b87000 Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/21b87000 Branch: refs/heads/master Commit: 21b870006b985713b76723e73a64607a0d7d63fe Parents: a324656 Author: Stefan Bodewig <bode...@apache.org> Authored: Fri Feb 9 18:39:08 2018 +0100 Committer: Stefan Bodewig <bode...@apache.org> Committed: Fri Feb 9 18:39:08 2018 +0100 ---------------------------------------------------------------------- src/main/org/apache/tools/ant/taskdefs/Copy.java | 5 ++++- src/main/org/apache/tools/ant/taskdefs/CopyPath.java | 3 +++ src/main/org/apache/tools/ant/taskdefs/Rmic.java | 3 +++ .../org/apache/tools/ant/taskdefs/optional/Native2Ascii.java | 5 ++++- 4 files changed, 14 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ant/blob/21b87000/src/main/org/apache/tools/ant/taskdefs/Copy.java ---------------------------------------------------------------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/Copy.java b/src/main/org/apache/tools/ant/taskdefs/Copy.java index 42f7cb7..fab7379 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Copy.java +++ b/src/main/org/apache/tools/ant/taskdefs/Copy.java @@ -788,6 +788,9 @@ public class Copy extends Task { for (int i = 0; i < toCopy.length; i++) { final File src = new File(fromDir, toCopy[i]); final String[] mappedFiles = mapper.mapFileName(toCopy[i]); + if (mappedFiles == null || mappedFiles.length == 0) { + continue; + } if (!enableMultipleMappings) { map.put(src.getAbsolutePath(), @@ -836,7 +839,7 @@ public class Copy extends Task { } for (int i = 0; i < toCopy.length; i++) { final String[] mappedFiles = mapper.mapFileName(toCopy[i].getName()); - if (mappedFiles == null) { + if (mappedFiles == null || mappedFiles.length == 0) { throw new BuildException("Can't copy a resource without a" + " name if the mapper doesn't" + " provide one."); http://git-wip-us.apache.org/repos/asf/ant/blob/21b87000/src/main/org/apache/tools/ant/taskdefs/CopyPath.java ---------------------------------------------------------------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/CopyPath.java b/src/main/org/apache/tools/ant/taskdefs/CopyPath.java index 53596fd..bad9e5d 100644 --- a/src/main/org/apache/tools/ant/taskdefs/CopyPath.java +++ b/src/main/org/apache/tools/ant/taskdefs/CopyPath.java @@ -182,6 +182,9 @@ public class CopyPath extends Task { String sourceFileName = sourceFiles[sources]; File sourceFile = new File(sourceFileName); String[] toFiles = (String[]) mapper.mapFileName(sourceFileName); + if (toFiles == null) { + continue; + } for (int i = 0; i < toFiles.length; i++) { String destFileName = toFiles[i]; http://git-wip-us.apache.org/repos/asf/ant/blob/21b87000/src/main/org/apache/tools/ant/taskdefs/Rmic.java ---------------------------------------------------------------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/Rmic.java b/src/main/org/apache/tools/ant/taskdefs/Rmic.java index d72c39e..0a54b3e 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Rmic.java +++ b/src/main/org/apache/tools/ant/taskdefs/Rmic.java @@ -709,6 +709,9 @@ public class Rmic extends MatchingTask { String classFileName = classname.replace('.', File.separatorChar) + ".class"; String[] generatedFiles = adapter.getMapper().mapFileName(classFileName); + if (generatedFiles == null) { + return; + } for (int i = 0; i < generatedFiles.length; i++) { final String generatedFile = generatedFiles[i]; http://git-wip-us.apache.org/repos/asf/ant/blob/21b87000/src/main/org/apache/tools/ant/taskdefs/optional/Native2Ascii.java ---------------------------------------------------------------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/Native2Ascii.java b/src/main/org/apache/tools/ant/taskdefs/optional/Native2Ascii.java index 664e574..1474cce 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/Native2Ascii.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/Native2Ascii.java @@ -255,7 +255,10 @@ public class Native2Ascii extends MatchingTask { + (count != 1 ? "s" : "") + " from "; log(message + srcDir + " to " + destDir); for (int i = 0; i < files.length; i++) { - convert(files[i], m.mapFileName(files[i])[0]); + String[] dest = m.mapFileName(files[i]); + if (dest != null && dest.length > 0) { + convert(files[i], dest[0]); + } } }