From db17fadd3849a9533e06a8444b4b48a2969cd712 Mon Sep 17 00:00:00 2001 From: Todd Lipcon Date: Thu, 17 Jan 2013 07:19:41 +0000 Subject: [PATCH] HADOOP-9216. CompressionCodecFactory#getCodecClasses should trim the result of parsing by Configuration. Contributed by Tsuyoshi Ozawa. git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1434569 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../hadoop/io/compress/CompressionCodecFactory.java | 2 +- .../apache/hadoop/io/compress/TestCodecFactory.java | 12 ++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index cfe3540feb..69ee7e9a90 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -444,6 +444,9 @@ Release 2.0.3-alpha - Unreleased HADOOP-9106. Allow configuration of IPC connect timeout. (Rober Parker via suresh) + HADOOP-9216. CompressionCodecFactory#getCodecClasses should trim the + result of parsing by Configuration. (Tsuyoshi Ozawa via todd) + OPTIMIZATIONS HADOOP-8866. SampleQuantiles#query is O(N^2) instead of O(N). (Andrew Wang diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/CompressionCodecFactory.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/CompressionCodecFactory.java index 57fb366bdd..eb35759c9c 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/CompressionCodecFactory.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/CompressionCodecFactory.java @@ -122,7 +122,7 @@ public class CompressionCodecFactory { if (codecsString != null) { StringTokenizer codecSplit = new StringTokenizer(codecsString, ","); while (codecSplit.hasMoreElements()) { - String codecSubstring = codecSplit.nextToken(); + String codecSubstring = codecSplit.nextToken().trim(); if (codecSubstring.length() != 0) { try { Class cls = conf.getClassByName(codecSubstring); diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/TestCodecFactory.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/TestCodecFactory.java index 280f1a8785..7601211a74 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/TestCodecFactory.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/TestCodecFactory.java @@ -256,5 +256,17 @@ public class TestCodecFactory extends TestCase { checkCodec("overridden factory for .gz", NewGzipCodec.class, codec); codec = factory.getCodecByClassName(NewGzipCodec.class.getCanonicalName()); checkCodec("overridden factory for gzip codec", NewGzipCodec.class, codec); + + Configuration conf = new Configuration(); + conf.set("io.compression.codecs", + " org.apache.hadoop.io.compress.GzipCodec , " + + " org.apache.hadoop.io.compress.DefaultCodec , " + + " org.apache.hadoop.io.compress.BZip2Codec "); + try { + CompressionCodecFactory.getCodecClasses(conf); + } catch (IllegalArgumentException e) { + fail("IllegalArgumentException is unexpected"); + } + } }