diff --git a/src/main/org/apache/tools/ant/types/mappers/CutDirsMapper.java b/src/main/org/apache/tools/ant/types/mappers/CutDirsMapper.java index ce8f39c13..932f3ec13 100644 --- a/src/main/org/apache/tools/ant/types/mappers/CutDirsMapper.java +++ b/src/main/org/apache/tools/ant/types/mappers/CutDirsMapper.java @@ -63,6 +63,9 @@ public class CutDirsMapper implements FileNameMapper { throw new BuildException("dirs must be set to a positive number"); } final char fileSep = File.separatorChar; + if (sourceFileName == null) { + return null; + } final String fileSepCorrected = sourceFileName.replace('/', fileSep).replace('\\', fileSep); int nthMatch = fileSepCorrected.indexOf(fileSep); 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 501da5000..9ef922e5f 100644 --- a/src/main/org/apache/tools/ant/types/mappers/FilterMapper.java +++ b/src/main/org/apache/tools/ant/types/mappers/FilterMapper.java @@ -63,6 +63,9 @@ public class FilterMapper extends FilterChain implements FileNameMapper { * the filterchain returns an empty string. */ public String[] mapFileName(String sourceFileName) { + if (sourceFileName == null) { + return null; + } try { Reader stringReader = new StringReader(sourceFileName); ChainReaderHelper helper = new ChainReaderHelper(); diff --git a/src/main/org/apache/tools/ant/util/FlatFileNameMapper.java b/src/main/org/apache/tools/ant/util/FlatFileNameMapper.java index 420ccc6c9..04d58bed5 100644 --- a/src/main/org/apache/tools/ant/util/FlatFileNameMapper.java +++ b/src/main/org/apache/tools/ant/util/FlatFileNameMapper.java @@ -49,6 +49,7 @@ public class FlatFileNameMapper implements FileNameMapper { * @return the file name in a one-element array. */ public String[] mapFileName(String sourceFileName) { - return new String[] {new java.io.File(sourceFileName).getName()}; + return sourceFileName == null ? null + : new String[] {new java.io.File(sourceFileName).getName()}; } } diff --git a/src/main/org/apache/tools/ant/util/GlobPatternMapper.java b/src/main/org/apache/tools/ant/util/GlobPatternMapper.java index ebba54ea2..a0f0ca987 100644 --- a/src/main/org/apache/tools/ant/util/GlobPatternMapper.java +++ b/src/main/org/apache/tools/ant/util/GlobPatternMapper.java @@ -154,6 +154,9 @@ public class GlobPatternMapper implements FileNameMapper { * @return a list of converted filenames */ public String[] mapFileName(String sourceFileName) { + if (sourceFileName == null) { + return null; + } String modName = modifyName(sourceFileName); if (fromPrefix == null || (sourceFileName.length() < (prefixLength + postfixLength)) diff --git a/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java b/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java index fa620d9ad..6a2f4b5c7 100644 --- a/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java +++ b/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java @@ -114,6 +114,9 @@ public class RegexpPatternMapper implements FileNameMapper { * null if the to pattern did not match */ public String[] mapFileName(String sourceFileName) { + if (sourceFileName == null) { + return null; + } if (handleDirSep) { if (sourceFileName.indexOf("\\") != -1) { sourceFileName = sourceFileName.replace('\\', '/');