hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aajis...@apache.org
Subject hadoop git commit: HADOOP-9869. Configuration.getSocketAddr()/getEnum() should use getTrimmed(). Contributed by Tsuyoshi Ozawa.
Date Thu, 12 Feb 2015 23:53:13 GMT
Repository: hadoop
Updated Branches:
  refs/heads/trunk 04d09ecd5 -> 9395c7669


HADOOP-9869. Configuration.getSocketAddr()/getEnum() should use getTrimmed(). Contributed
by Tsuyoshi Ozawa.


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

Branch: refs/heads/trunk
Commit: 9395c7669714845a51e464ab7a2214168bf03a36
Parents: 04d09ec
Author: Akira Ajisaka <aajisaka@apache.org>
Authored: Thu Feb 12 15:50:48 2015 -0800
Committer: Akira Ajisaka <aajisaka@apache.org>
Committed: Thu Feb 12 15:50:48 2015 -0800

----------------------------------------------------------------------
 hadoop-common-project/hadoop-common/CHANGES.txt |  3 ++
 .../org/apache/hadoop/conf/Configuration.java   |  6 ++--
 .../apache/hadoop/conf/TestConfiguration.java   | 29 +++++++++++++++++++-
 3 files changed, 35 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/9395c766/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt
index 7078d42..c11e340 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -597,6 +597,9 @@ Release 2.7.0 - UNRELEASED
     HADOOP-11586. Update use of Iterator to Iterable in
     AbstractMetricsContext.java. (Ray Chiang via aajisaka)
 
+    HADOOP-9869. Configuration.getSocketAddr()/getEnum() should use
+    getTrimmed(). (Tsuyoshi Ozawa via aajisaka)
+
   OPTIMIZATIONS
 
     HADOOP-11323. WritableComparator#compare keeps reference to byte array.

http://git-wip-us.apache.org/repos/asf/hadoop/blob/9395c766/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
index ea0d3a6..02654b7 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
@@ -1491,13 +1491,14 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
 
   /**
    * Return value matching this enumerated type.
+   * Note that the returned value is trimmed by this method.
    * @param name Property name
    * @param defaultValue Value returned if no mapping exists
    * @throws IllegalArgumentException If mapping is illegal for the type
    * provided
    */
   public <T extends Enum<T>> T getEnum(String name, T defaultValue) {
-    final String val = get(name);
+    final String val = getTrimmed(name);
     return null == val
       ? defaultValue
       : Enum.valueOf(defaultValue.getDeclaringClass(), val);
@@ -1594,6 +1595,7 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
    * Get the value of the <code>name</code> property as a <code>Pattern</code>.
    * If no such property is specified, or if the specified value is not a valid
    * <code>Pattern</code>, then <code>DefaultValue</code> is returned.
+   * Note that the returned value is NOT trimmed by this method.
    *
    * @param name property name
    * @param defaultValue default value
@@ -2044,7 +2046,7 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
    */
   public InetSocketAddress getSocketAddr(
       String name, String defaultAddress, int defaultPort) {
-    final String address = get(name, defaultAddress);
+    final String address = getTrimmed(name, defaultAddress);
     return NetUtils.createSocketAddr(address, defaultPort, name);
   }
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/9395c766/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
index b84045d..a367553 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java
@@ -56,6 +56,7 @@ public class TestConfiguration extends TestCase {
   private Configuration conf;
   final static String CONFIG = new File("./test-config-TestConfiguration.xml").getAbsolutePath();
   final static String CONFIG2 = new File("./test-config2-TestConfiguration.xml").getAbsolutePath();
+  final static String CONFIG_FOR_ENUM = new File("./test-config-enum-TestConfiguration.xml").getAbsolutePath();
   private static final String CONFIG_MULTI_BYTE = new File(
     "./test-config-multi-byte-TestConfiguration.xml").getAbsolutePath();
   private static final String CONFIG_MULTI_BYTE_SAVED = new File(
@@ -76,6 +77,7 @@ public class TestConfiguration extends TestCase {
     super.tearDown();
     new File(CONFIG).delete();
     new File(CONFIG2).delete();
+    new File(CONFIG_FOR_ENUM).delete();
     new File(CONFIG_MULTI_BYTE).delete();
     new File(CONFIG_MULTI_BYTE_SAVED).delete();
   }
@@ -792,6 +794,7 @@ public class TestConfiguration extends TestCase {
     conf.setEnum("test.enum", Dingo.FOO);
     assertSame(Dingo.FOO, conf.getEnum("test.enum", Dingo.BAR));
     assertSame(Yak.FOO, conf.getEnum("test.enum", Yak.RAB));
+    conf.setEnum("test.enum", Dingo.FOO);
     boolean fail = false;
     try {
       conf.setEnum("test.enum", Dingo.BAR);
@@ -802,6 +805,26 @@ public class TestConfiguration extends TestCase {
     assertTrue(fail);
   }
 
+  public void testEnumFromXml() throws IOException {
+    out=new BufferedWriter(new FileWriter(CONFIG_FOR_ENUM));
+    startConfig();
+    appendProperty("test.enum"," \t \n   FOO \t \n");
+    appendProperty("test.enum2"," \t \n   Yak.FOO \t \n");
+    endConfig();
+
+    Configuration conf = new Configuration();
+    Path fileResource = new Path(CONFIG_FOR_ENUM);
+    conf.addResource(fileResource);
+    assertSame(Yak.FOO, conf.getEnum("test.enum", Yak.FOO));
+    boolean fail = false;
+    try {
+      conf.getEnum("test.enum2", Yak.FOO);
+    } catch (IllegalArgumentException e) {
+      fail = true;
+    }
+    assertTrue(fail);
+  }
+
   public void testTimeDuration() {
     Configuration conf = new Configuration(false);
     conf.setTimeDuration("test.time.a", 7L, SECONDS);
@@ -918,7 +941,11 @@ public class TestConfiguration extends TestCase {
     conf.set("myAddress", "host2:3");
     addr = conf.getSocketAddr("myAddress", defaultAddr, defaultPort);
     assertEquals("host2:3", NetUtils.getHostPortString(addr));
-    
+
+    conf.set("myAddress", " \n \t    host4:5     \t \n   ");
+    addr = conf.getSocketAddr("myAddress", defaultAddr, defaultPort);
+    assertEquals("host4:5", NetUtils.getHostPortString(addr));
+
     boolean threwException = false;
     conf.set("myAddress", "bad:-port");
     try {


Mime
View raw message