diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index aa8636020d5..8b809982601 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/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) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/serializer/SerializationFactory.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/serializer/SerializationFactory.java index d6c6588e794..3f177f8eeef 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/serializer/SerializationFactory.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/serializer/SerializationFactory.java @@ -60,7 +60,7 @@ public SerializationFactory(Configuration conf) { + 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(), diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/TestSerializationFactory.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/TestSerializationFactory.java index c5805be5b47..6774155758d 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/serializer/TestSerializationFactory.java +++ b/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 void testGetDeserializer() { 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)); + } }