diff --git a/src/main/org/apache/tools/ant/taskdefs/Copy.java b/src/main/org/apache/tools/ant/taskdefs/Copy.java index 42f7cb76f..fab73796a 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."); diff --git a/src/main/org/apache/tools/ant/taskdefs/CopyPath.java b/src/main/org/apache/tools/ant/taskdefs/CopyPath.java index 53596fd98..bad9e5d93 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]; diff --git a/src/main/org/apache/tools/ant/taskdefs/Rmic.java b/src/main/org/apache/tools/ant/taskdefs/Rmic.java index d72c39e68..0a54b3efe 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]; 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 664e574f0..1474ccecc 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]); + } } }