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