Browse Source

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

Harsh J 10 years ago
parent
commit
e0ec0718d0

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

@@ -588,6 +588,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

@@ -60,7 +60,7 @@ public class SerializationFactory extends Configured {
           + CommonConfigurationKeys.IO_SERIALIZATIONS_KEY
           + " properly to have serialization support (it is currently not set).");
     } else {
-      for (String serializerName : conf.getStrings(
+      for (String serializerName : conf.getTrimmedStrings(
           CommonConfigurationKeys.IO_SERIALIZATIONS_KEY, new String[] {
               WritableSerialization.class.getName(),
               AvroSpecificSerialization.class.getName(),

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

@@ -17,6 +17,7 @@
  */
 package org.apache.hadoop.io.serializer;
 
+import org.apache.hadoop.io.LongWritable;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import static org.junit.Assert.assertNull;
@@ -76,4 +77,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));
+   }
 }