Browse Source

Merge branch '1.9.x'

master
Stefan Bodewig 7 years ago
parent
commit
e90f71193a
11 changed files with 34 additions and 3 deletions
  1. +4
    -1
      src/main/org/apache/tools/ant/taskdefs/Copy.java
  2. +3
    -0
      src/main/org/apache/tools/ant/taskdefs/CopyPath.java
  3. +3
    -0
      src/main/org/apache/tools/ant/taskdefs/Rmic.java
  4. +4
    -1
      src/main/org/apache/tools/ant/taskdefs/optional/Native2Ascii.java
  5. +3
    -0
      src/main/org/apache/tools/ant/types/mappers/CutDirsMapper.java
  6. +3
    -0
      src/main/org/apache/tools/ant/types/mappers/FilterMapper.java
  7. +3
    -0
      src/main/org/apache/tools/ant/util/ChainedMapper.java
  8. +3
    -1
      src/main/org/apache/tools/ant/util/FileNameMapper.java
  9. +2
    -0
      src/main/org/apache/tools/ant/util/FlatFileNameMapper.java
  10. +3
    -0
      src/main/org/apache/tools/ant/util/GlobPatternMapper.java
  11. +3
    -0
      src/main/org/apache/tools/ant/util/RegexpPatternMapper.java

+ 4
- 1
src/main/org/apache/tools/ant/taskdefs/Copy.java View File

@@ -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(),
@@ -831,7 +834,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.");


+ 3
- 0
src/main/org/apache/tools/ant/taskdefs/CopyPath.java View File

@@ -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];


+ 3
- 0
src/main/org/apache/tools/ant/taskdefs/Rmic.java View File

@@ -705,6 +705,9 @@ public class Rmic extends MatchingTask {
String classFileName = classname.replace('.', File.separatorChar)
+ ".class";
String[] generatedFiles = adapter.getMapper().mapFileName(classFileName);
if (generatedFiles == null) {
return;
}

for (String generatedFile : generatedFiles) {
if (!generatedFile.endsWith(".class")) {


+ 4
- 1
src/main/org/apache/tools/ant/taskdefs/optional/Native2Ascii.java View File

@@ -256,7 +256,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]);
}
}
}



+ 3
- 0
src/main/org/apache/tools/ant/types/mappers/CutDirsMapper.java View File

@@ -66,6 +66,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);


+ 3
- 0
src/main/org/apache/tools/ant/types/mappers/FilterMapper.java View File

@@ -66,6 +66,9 @@ public class FilterMapper extends FilterChain implements FileNameMapper {
*/
@Override
public String[] mapFileName(String sourceFileName) {
if (sourceFileName == null) {
return null;
}
try {
Reader stringReader = new StringReader(sourceFileName);
ChainReaderHelper helper = new ChainReaderHelper();


+ 3
- 0
src/main/org/apache/tools/ant/util/ChainedMapper.java View File

@@ -32,6 +32,9 @@ public class ChainedMapper extends ContainerMapper {
/** {@inheritDoc}. */
@Override
public String[] mapFileName(String sourceFileName) {
// we invoke the chain even if the sourceFileName is null. Some
// resources have a null name and users may use a mapper like
// MergeMapper to provide a name for it.
String[] result = getMappers().stream()
.reduce(new String[] { sourceFileName }, (i, m) -> Stream.of(i)
.map(m::mapFileName).filter(Objects::nonNull).flatMap(Stream::of).toArray(String[]::new),


+ 3
- 1
src/main/org/apache/tools/ant/util/FileNameMapper.java View File

@@ -52,7 +52,9 @@ public interface FileNameMapper {
* omit the source file in question.</p>
*
* @param sourceFileName the name of the source file relative to
* some given basedirectory.
* some given basedirectory. Might be {@code
* null} for resources that don't provide a
* name.
* @return an array of strings if the rule applies to the source file, or
* null if it does not.
*/


+ 2
- 0
src/main/org/apache/tools/ant/util/FlatFileNameMapper.java View File

@@ -53,5 +53,7 @@ public class FlatFileNameMapper implements FileNameMapper {
@Override
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()};
}
}

+ 3
- 0
src/main/org/apache/tools/ant/util/GlobPatternMapper.java View File

@@ -155,6 +155,9 @@ public class GlobPatternMapper implements FileNameMapper {
*/
@Override
public String[] mapFileName(String sourceFileName) {
if (sourceFileName == null) {
return null;
}
String modName = modifyName(sourceFileName);
if (fromPrefix == null
|| (sourceFileName.length() < (prefixLength + postfixLength))


+ 3
- 0
src/main/org/apache/tools/ant/util/RegexpPatternMapper.java View File

@@ -115,6 +115,9 @@ public class RegexpPatternMapper implements FileNameMapper {
*/
@Override
public String[] mapFileName(String sourceFileName) {
if (sourceFileName == null) {
return null;
}
if (handleDirSep) {
if (sourceFileName.indexOf("\\") != -1) {
sourceFileName = sourceFileName.replace('\\', '/');


Loading…
Cancel
Save