From c35da29454a8e00e635d0bc512991aa29f0595d4 Mon Sep 17 00:00:00 2001 From: Robert Joseph Evans Date: Mon, 16 Jul 2012 14:20:47 +0000 Subject: [PATCH] svn merge -c 1362052. FIXES: MAPREDUCE-4395. Possible NPE at ClientDistributedCacheManager#determineTimestamps (Bhallamudi via bobby) git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1362054 13f79535-47bb-0310-9956-ffa450edef68 --- .../main/java/org/apache/hadoop/util/StringUtils.java | 11 +++++++---- .../java/org/apache/hadoop/util/TestStringUtils.java | 11 +++++++++++ hadoop-mapreduce-project/CHANGES.txt | 3 +++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StringUtils.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StringUtils.java index b2c29c46277..67a8f82d938 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StringUtils.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StringUtils.java @@ -202,8 +202,12 @@ public class StringUtils { } /** - * * @param str + * The string array to be parsed into an URI array. + * @return null if str is null, else the URI array + * equivalent to str. + * @throws IllegalArgumentException + * If any string in str violates RFC 2396. */ public static URI[] stringToURI(String[] str){ if (str == null) @@ -213,9 +217,8 @@ public class StringUtils { try{ uris[i] = new URI(str[i]); }catch(URISyntaxException ur){ - System.out.println("Exception in specified URI's " + StringUtils.stringifyException(ur)); - //making sure its asssigned to null in case of an error - uris[i] = null; + throw new IllegalArgumentException( + "Failed to create uri for " + str[i], ur); } } return uris; diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestStringUtils.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestStringUtils.java index e0dddb2ce40..fc90984608f 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestStringUtils.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestStringUtils.java @@ -269,6 +269,17 @@ public class TestStringUtils extends UnitTestcaseTimeLimit { assertEquals("Yy", StringUtils.camelize("yY")); assertEquals("Zz", StringUtils.camelize("zZ")); } + + @Test + public void testStringToURI() { + String[] str = new String[] { "file://" }; + try { + StringUtils.stringToURI(str); + fail("Ignoring URISyntaxException while creating URI from string file://"); + } catch (IllegalArgumentException iae) { + assertEquals("Failed to create uri for file://", iae.getMessage()); + } + } // Benchmark for StringUtils split public static void main(String []args) { diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index b56c5a529e7..0a6989f8eae 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -98,6 +98,9 @@ Release 2.0.1-alpha - UNRELEASED HADOOP-8499. Lower min.user.id to 500 for the tests. (Colin Patrick McCabe via eli) + MAPREDUCE-4395. Possible NPE at ClientDistributedCacheManager + #determineTimestamps (Bhallamudi via bobby) + Release 2.0.0-alpha - 05-23-2012 INCOMPATIBLE CHANGES