浏览代码

HADOOP-9216. CompressionCodecFactory#getCodecClasses should trim the result of parsing by Configuration. (Tsuyoshi Ozawa via todd)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23@1434893 13f79535-47bb-0310-9956-ffa450edef68
Thomas Graves 12 年之前
父节点
当前提交
0049b69e01

+ 6 - 2
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -8,8 +8,12 @@ Release 0.23.7 - UNRELEASED
 
   IMPROVEMENTS
 
-   HADOOP-8849. FileUtil#fullyDelete should grant the target directories +rwx
-   permissions (Ivan A. Veselovsky via bobby)
+    HADOOP-8849. FileUtil#fullyDelete should grant the target directories +rwx
+    permissions (Ivan A. Veselovsky via bobby)
+ 
+    HADOOP-9216. CompressionCodecFactory#getCodecClasses should trim the
+    result of parsing by Configuration. (Tsuyoshi Ozawa via todd)
+
 
   OPTIMIZATIONS
 

+ 1 - 1
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/CompressionCodecFactory.java

@@ -107,7 +107,7 @@ public class CompressionCodecFactory {
         = new ArrayList<Class<? extends CompressionCodec>>();
       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);

+ 12 - 0
hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/TestCodecFactory.java

@@ -220,5 +220,17 @@ public class TestCodecFactory extends TestCase {
     checkCodec("full factory foo codec", FooCodec.class, codec);
     codec = factory.getCodecByName("FOO");
     checkCodec("full factory foo codec", FooCodec.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");
+    }
+
   }
 }