Browse Source

HADOOP-11589. NetUtils.createSocketAddr should trim the input URI. Contributed by Rakesh R.

Tsuyoshi Ozawa 10 years ago
parent
commit
c26687ec0d

+ 3 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -602,6 +602,9 @@ Release 2.7.0 - UNRELEASED
     HADOOP-9869. Configuration.getSocketAddr()/getEnum() should use
     HADOOP-9869. Configuration.getSocketAddr()/getEnum() should use
     getTrimmed(). (Tsuyoshi Ozawa via aajisaka)
     getTrimmed(). (Tsuyoshi Ozawa via aajisaka)
 
 
+    HADOOP-11589. NetUtils.createSocketAddr should trim the input URI.
+    (Rakesh R via ozawa)
+
   OPTIMIZATIONS
   OPTIMIZATIONS
 
 
     HADOOP-11323. WritableComparator#compare keeps reference to byte array.
     HADOOP-11323. WritableComparator#compare keeps reference to byte array.

+ 1 - 0
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java

@@ -189,6 +189,7 @@ public class NetUtils {
       throw new IllegalArgumentException("Target address cannot be null." +
       throw new IllegalArgumentException("Target address cannot be null." +
           helpText);
           helpText);
     }
     }
+    target = target.trim();
     boolean hasScheme = target.contains("://");    
     boolean hasScheme = target.contains("://");    
     URI uri = null;
     URI uri = null;
     try {
     try {

+ 11 - 0
hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetUtils.java

@@ -643,6 +643,17 @@ public class TestNetUtils {
     assertNotNull(NetUtils.getHostNameOfIP("127.0.0.1:1"));
     assertNotNull(NetUtils.getHostNameOfIP("127.0.0.1:1"));
   }
   }
 
 
+  @Test
+  public void testTrimCreateSocketAddress() {
+    Configuration conf = new Configuration();
+    NetUtils.addStaticResolution("host", "127.0.0.1");
+    final String defaultAddr = "host:1  ";
+
+    InetSocketAddress addr = NetUtils.createSocketAddr(defaultAddr);
+    conf.setSocketAddr("myAddress", addr);
+    assertEquals(defaultAddr.trim(), NetUtils.getHostPortString(addr));
+  }
+
   private <T> void assertBetterArrayEquals(T[] expect, T[]got) {
   private <T> void assertBetterArrayEquals(T[] expect, T[]got) {
     String expectStr = StringUtils.join(expect, ", ");
     String expectStr = StringUtils.join(expect, ", ");
     String gotStr = StringUtils.join(got, ", ");
     String gotStr = StringUtils.join(got, ", ");