You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by ja...@apache.org on 2018/02/08 14:53:54 UTC

ant git commit: bz-62086 Fix NPE in ChainedMapper.

Repository: ant
Updated Branches:
  refs/heads/master f20b41c9b -> 98e4b51aa


bz-62086 Fix NPE in ChainedMapper.

This closes #59 pull request at github/apache/ant repo

This NPE happens whenever any of the sub mappers returns `null`, which may
happen eg. with `GlobPatternMapper`.


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

Branch: refs/heads/master
Commit: 98e4b51aa88be2de4e74172a0f4aec153da1ebd7
Parents: f20b41c
Author: Adrien Grand <jp...@gmail.com>
Authored: Thu Feb 8 15:22:02 2018 +0100
Committer: Jaikiran Pai <ja...@apache.org>
Committed: Thu Feb 8 20:16:42 2018 +0530

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


http://git-wip-us.apache.org/repos/asf/ant/blob/98e4b51a/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 e47043a..8b3e32f 100644
--- a/src/main/org/apache/tools/ant/util/ChainedMapper.java
+++ b/src/main/org/apache/tools/ant/util/ChainedMapper.java
@@ -18,6 +18,7 @@
 
 package org.apache.tools.ant.util;
 
+import java.util.Objects;
 import java.util.stream.Stream;
 
 /**
@@ -33,7 +34,7 @@ public class ChainedMapper extends ContainerMapper {
     public String[] mapFileName(String sourceFileName) {
         String[] result = getMappers().stream()
             .reduce(new String[] { sourceFileName }, (i, m) -> Stream.of(i)
-                .map(m::mapFileName).flatMap(Stream::of).toArray(String[]::new),
+                .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/98e4b51a/src/tests/junit/org/apache/tools/ant/types/MapperTest.java
----------------------------------------------------------------------
diff --git a/src/tests/junit/org/apache/tools/ant/types/MapperTest.java b/src/tests/junit/org/apache/tools/ant/types/MapperTest.java
index 980f5cc..77c1811 100644
--- a/src/tests/junit/org/apache/tools/ant/types/MapperTest.java
+++ b/src/tests/junit/org/apache/tools/ant/types/MapperTest.java
@@ -35,6 +35,7 @@ import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -224,6 +225,9 @@ public class MapperTest {
         List list = Arrays.asList(targets);
         assertTrue("cannot find expected target \"def\"", list.contains("def"));
         assertTrue("cannot find expected target \"ghi\"", list.contains("ghi"));
+
+        targets = fileNameMapper.mapFileName("z");
+        assertNull(targets);
     }
 
     @Test