You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2018/02/09 17:50:44 UTC

[1/4] ant git commit: add some documentation hints

Repository: ant
Updated Branches:
  refs/heads/master 3bb66d938 -> e90f71193


add some documentation hints

see 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/801a44a2
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/801a44a2
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/801a44a2

Branch: refs/heads/master
Commit: 801a44a2079d19479ddaed087dfe4a982ae955a3
Parents: ee33805
Author: Stefan Bodewig <bo...@apache.org>
Authored: Fri Feb 9 18:36:20 2018 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Fri Feb 9 18:36:20 2018 +0100

----------------------------------------------------------------------
 src/main/org/apache/tools/ant/util/ChainedMapper.java  | 3 +++
 src/main/org/apache/tools/ant/util/FileNameMapper.java | 4 +++-
 2 files changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/801a44a2/src/main/org/apache/tools/ant/util/ChainedMapper.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/util/ChainedMapper.java b/src/main/org/apache/tools/ant/util/ChainedMapper.java
index 635a053..6e07aa6 100644
--- a/src/main/org/apache/tools/ant/util/ChainedMapper.java
+++ b/src/main/org/apache/tools/ant/util/ChainedMapper.java
@@ -35,6 +35,9 @@ public class ChainedMapper extends ContainerMapper {
     public String[] mapFileName(String sourceFileName) {
         List inputs = new ArrayList();
         List results = new ArrayList();
+        // we do this 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.
         results.add(sourceFileName);
         FileNameMapper mapper = null;
 

http://git-wip-us.apache.org/repos/asf/ant/blob/801a44a2/src/main/org/apache/tools/ant/util/FileNameMapper.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/util/FileNameMapper.java b/src/main/org/apache/tools/ant/util/FileNameMapper.java
index bbd8261..ec85f9d 100644
--- a/src/main/org/apache/tools/ant/util/FileNameMapper.java
+++ b/src/main/org/apache/tools/ant/util/FileNameMapper.java
@@ -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.
      */


[3/4] ant git commit: properly check return value of mapFileName

Posted by bo...@apache.org.
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 <bo...@apache.org>
Authored: Fri Feb 9 18:39:08 2018 +0100
Committer: Stefan Bodewig <bo...@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]);
+            }
         }
     }
 


[4/4] ant git commit: Merge branch '1.9.x'

Posted by bo...@apache.org.
Merge branch '1.9.x'


Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/e90f7119
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/e90f7119
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/e90f7119

Branch: refs/heads/master
Commit: e90f71193adc819ee27d2067cbd662ce7efacaf4
Parents: 3bb66d9 21b8700
Author: Stefan Bodewig <bo...@apache.org>
Authored: Fri Feb 9 18:49:52 2018 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Fri Feb 9 18:49:52 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 ++++-
 src/main/org/apache/tools/ant/types/mappers/CutDirsMapper.java  | 3 +++
 src/main/org/apache/tools/ant/types/mappers/FilterMapper.java   | 3 +++
 src/main/org/apache/tools/ant/util/ChainedMapper.java           | 3 +++
 src/main/org/apache/tools/ant/util/FileNameMapper.java          | 4 +++-
 src/main/org/apache/tools/ant/util/FlatFileNameMapper.java      | 2 ++
 src/main/org/apache/tools/ant/util/GlobPatternMapper.java       | 3 +++
 src/main/org/apache/tools/ant/util/RegexpPatternMapper.java     | 3 +++
 11 files changed, 34 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/e90f7119/src/main/org/apache/tools/ant/taskdefs/Copy.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ant/blob/e90f7119/src/main/org/apache/tools/ant/taskdefs/Rmic.java
----------------------------------------------------------------------
diff --cc src/main/org/apache/tools/ant/taskdefs/Rmic.java
index c42ad41,0a54b3e..aa762b1
--- a/src/main/org/apache/tools/ant/taskdefs/Rmic.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Rmic.java
@@@ -705,8 -709,12 +705,11 @@@ 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];
 +        for (String generatedFile : generatedFiles) {
              if (!generatedFile.endsWith(".class")) {
                  // don't know how to handle that - a IDL file doesn't
                  // have a corresponding Java source for example.

http://git-wip-us.apache.org/repos/asf/ant/blob/e90f7119/src/main/org/apache/tools/ant/taskdefs/optional/Native2Ascii.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ant/blob/e90f7119/src/main/org/apache/tools/ant/types/mappers/CutDirsMapper.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ant/blob/e90f7119/src/main/org/apache/tools/ant/types/mappers/FilterMapper.java
----------------------------------------------------------------------
diff --cc src/main/org/apache/tools/ant/types/mappers/FilterMapper.java
index b4c07e9,9ef922e..3a0109b
--- a/src/main/org/apache/tools/ant/types/mappers/FilterMapper.java
+++ b/src/main/org/apache/tools/ant/types/mappers/FilterMapper.java
@@@ -64,8 -62,10 +64,11 @@@ public class FilterMapper extends Filte
       * @return  a one-element array of converted filenames, or null if
       *          the filterchain returns an empty string.
       */
 +    @Override
      public String[] mapFileName(String sourceFileName) {
+         if (sourceFileName == null) {
+             return null;
+         }
          try {
              Reader stringReader = new StringReader(sourceFileName);
              ChainReaderHelper helper = new ChainReaderHelper();

http://git-wip-us.apache.org/repos/asf/ant/blob/e90f7119/src/main/org/apache/tools/ant/util/ChainedMapper.java
----------------------------------------------------------------------
diff --cc src/main/org/apache/tools/ant/util/ChainedMapper.java
index 8b3e32f,6e07aa6..cec4f2e
--- a/src/main/org/apache/tools/ant/util/ChainedMapper.java
+++ b/src/main/org/apache/tools/ant/util/ChainedMapper.java
@@@ -30,13 -32,32 +30,16 @@@ import java.util.stream.Stream
  public class ChainedMapper extends ContainerMapper {
  
      /** {@inheritDoc}. */
 +    @Override
      public String[] mapFileName(String sourceFileName) {
 -        List inputs = new ArrayList();
 -        List results = new ArrayList();
 -        // we do this even if the sourceFileName is null. Some
++        // 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.
 -        results.add(sourceFileName);
 -        FileNameMapper mapper = null;
 -
 -        for (Iterator mIter = getMappers().iterator(); mIter.hasNext();) {
 -            mapper = (FileNameMapper) (mIter.next());
 -            if (mapper != null) {
 -                inputs.clear();
 -                inputs.addAll(results);
 -                results.clear();
 -
 -                for (Iterator it = inputs.iterator(); it.hasNext();) {
 -                    String[] mapped = mapper.mapFileName((String) (it.next()));
 -                    if (mapped != null) {
 -                        results.addAll(Arrays.asList(mapped));
 -                    }
 -                }
 -            }
 -        }
 -        return (results.size() == 0) ? null
 -            : (String[]) results.toArray(new String[results.size()]);
 +        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),
 +                (i, o) -> o);
 +        return result == null || result.length == 0 ? null : result;
      }
  }
  

http://git-wip-us.apache.org/repos/asf/ant/blob/e90f7119/src/main/org/apache/tools/ant/util/FlatFileNameMapper.java
----------------------------------------------------------------------
diff --cc src/main/org/apache/tools/ant/util/FlatFileNameMapper.java
index 8465c78,04d58be..37383b6
--- a/src/main/org/apache/tools/ant/util/FlatFileNameMapper.java
+++ b/src/main/org/apache/tools/ant/util/FlatFileNameMapper.java
@@@ -50,8 -48,8 +50,10 @@@ public class FlatFileNameMapper impleme
       * @param sourceFileName the name to map.
       * @return the file name in a one-element array.
       */
 +    @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()};
      }
  }

http://git-wip-us.apache.org/repos/asf/ant/blob/e90f7119/src/main/org/apache/tools/ant/util/GlobPatternMapper.java
----------------------------------------------------------------------
diff --cc src/main/org/apache/tools/ant/util/GlobPatternMapper.java
index 8e470ac,a0f0ca9..63a8f36
--- a/src/main/org/apache/tools/ant/util/GlobPatternMapper.java
+++ b/src/main/org/apache/tools/ant/util/GlobPatternMapper.java
@@@ -153,8 -153,10 +153,11 @@@ public class GlobPatternMapper implemen
       * @param sourceFileName the filename to map
       * @return a list of converted filenames
       */
 +    @Override
      public String[] mapFileName(String sourceFileName) {
+         if (sourceFileName == null) {
+             return null;
+         }
          String modName = modifyName(sourceFileName);
          if (fromPrefix == null
              || (sourceFileName.length() < (prefixLength + postfixLength))

http://git-wip-us.apache.org/repos/asf/ant/blob/e90f7119/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java
----------------------------------------------------------------------
diff --cc src/main/org/apache/tools/ant/util/RegexpPatternMapper.java
index 82bc109,6a2f4b5..495a644
--- a/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java
+++ b/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java
@@@ -113,8 -113,10 +113,11 @@@ public class RegexpPatternMapper implem
       * @return a one-element array containing the translated file or
       *         null if the to pattern did not match
       */
 +    @Override
      public String[] mapFileName(String sourceFileName) {
+         if (sourceFileName == null) {
+             return null;
+         }
          if (handleDirSep) {
              if (sourceFileName.indexOf("\\") != -1) {
                  sourceFileName = sourceFileName.replace('\\', '/');


[2/4] ant git commit: ensure FileNameMapper implementations deal with null source names

Posted by bo...@apache.org.
ensure FileNameMapper implementations deal with null source names

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/a3246562
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/a3246562
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/a3246562

Branch: refs/heads/master
Commit: a3246562ff3ac48ef32d75df688bc04e22bc7dd7
Parents: 801a44a
Author: Stefan Bodewig <bo...@apache.org>
Authored: Fri Feb 9 18:37:58 2018 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Fri Feb 9 18:37:58 2018 +0100

----------------------------------------------------------------------
 src/main/org/apache/tools/ant/types/mappers/CutDirsMapper.java | 3 +++
 src/main/org/apache/tools/ant/types/mappers/FilterMapper.java  | 3 +++
 src/main/org/apache/tools/ant/util/FlatFileNameMapper.java     | 3 ++-
 src/main/org/apache/tools/ant/util/GlobPatternMapper.java      | 3 +++
 src/main/org/apache/tools/ant/util/RegexpPatternMapper.java    | 3 +++
 5 files changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/a3246562/src/main/org/apache/tools/ant/types/mappers/CutDirsMapper.java
----------------------------------------------------------------------
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 ce8f39c..932f3ec 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);

http://git-wip-us.apache.org/repos/asf/ant/blob/a3246562/src/main/org/apache/tools/ant/types/mappers/FilterMapper.java
----------------------------------------------------------------------
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 501da50..9ef922e 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();

http://git-wip-us.apache.org/repos/asf/ant/blob/a3246562/src/main/org/apache/tools/ant/util/FlatFileNameMapper.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/util/FlatFileNameMapper.java b/src/main/org/apache/tools/ant/util/FlatFileNameMapper.java
index 420ccc6..04d58be 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()};
     }
 }

http://git-wip-us.apache.org/repos/asf/ant/blob/a3246562/src/main/org/apache/tools/ant/util/GlobPatternMapper.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/util/GlobPatternMapper.java b/src/main/org/apache/tools/ant/util/GlobPatternMapper.java
index ebba54e..a0f0ca9 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))

http://git-wip-us.apache.org/repos/asf/ant/blob/a3246562/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java b/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java
index fa620d9..6a2f4b5 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('\\', '/');