From 442bc776db7642eae02ee83231ecdbec78d3cb78 Mon Sep 17 00:00:00 2001 From: Harsh J Date: Mon, 9 Feb 2015 11:10:45 +0530 Subject: [PATCH] HADOOP-11512. Use getTrimmedStrings when reading serialization keys. Contributed by Ryan P. --- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../hadoop/io/serializer/SerializationFactory.java | 2 +- .../io/serializer/TestSerializationFactory.java | 11 +++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index a61c3490ba0..fec56132f9f 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/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) 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 52a0a253bba..aa3c86ae4ec 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 @@ -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(), 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 18c2637ec5a..b3c8bee159a 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,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)); + } }