Browse Source

HADOOP-11512. Use getTrimmedStrings when reading serialization keys. Contributed by Ryan P.

Harsh J 10 years ago
parent
commit
442bc776db

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

@@ -202,6 +202,9 @@ Release 2.7.0 - UNRELEASED
 
   BUG FIXES
 
+    HADOOP-11512. Use getTrimmedStrings when reading serialization keys
+    (Ryan P via harsh)
+
     HADOOP-11488. Difference in default connection timeout for S3A FS
     (Daisuke Kobayashi via harsh)
 

+ 1 - 1
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/serializer/SerializationFactory.java

@@ -55,7 +55,7 @@ public class SerializationFactory extends Configured {
    */
   public SerializationFactory(Configuration conf) {
     super(conf);
-    for (String serializerName : conf.getStrings(
+    for (String serializerName : conf.getTrimmedStrings(
       CommonConfigurationKeys.IO_SERIALIZATIONS_KEY,
       new String[]{WritableSerialization.class.getName(),
         AvroSpecificSerialization.class.getName(),

+ 11 - 0
hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/TestSerializationFactory.java

@@ -17,6 +17,8 @@
  */
 package org.apache.hadoop.io.serializer;
 
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.fs.CommonConfigurationKeys;
 import org.junit.Test;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertNotNull;
@@ -41,4 +43,13 @@ public class TestSerializationFactory {
     assertNull("A null should be returned if there are no deserializers found",
         factory.getDeserializer(TestSerializationFactory.class));
   }
+
+  @Test
+  public void testSerializationKeyIsTrimmed() {
+    Configuration conf = new Configuration();
+    conf.set(CommonConfigurationKeys.IO_SERIALIZATIONS_KEY, " org.apache.hadoop.io.serializer.WritableSerialization ");
+    SerializationFactory factory = new SerializationFactory(conf);
+    assertNotNull("Valid class must be returned",
+      factory.getSerializer(LongWritable.class));
+   }
 }