From e0ec0718d033e84bda2ebeab7beb00b7dbd990c0 Mon Sep 17 00:00:00 2001 From: Harsh J Date: Mon, 9 Feb 2015 10:41:25 +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 +- .../hadoop/io/serializer/TestSerializationFactory.java | 10 ++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index aa8636020d..8b80998260 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 d6c6588e79..3f177f8eee 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 c5805be5b4..6774155758 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)); + } }