Procházet zdrojové kódy

Reverted MAPREDUCE-4974 because of test failures.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23@1463361 13f79535-47bb-0310-9956-ffa450edef68
Robert Joseph Evans před 12 roky
rodič
revize
e554cc926d

+ 0 - 3
hadoop-mapreduce-project/CHANGES.txt

@@ -45,9 +45,6 @@ Release 0.23.7 - UNRELEASED
     MAPREDUCE-4822. Unnecessary conversions in History Events. (Chu Tong via
     jlowe)
 
-    MAPREDUCE-4974. Optimising the LineRecordReader initialize() method
-    (Gelesh via bobby)
-
   BUG FIXES
 
     MAPREDUCE-4278. cannot run two local jobs in parallel from the same 

+ 6 - 3
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/LineRecordReader.java

@@ -81,13 +81,13 @@ public class LineRecordReader extends RecordReader<LongWritable, Text> {
     start = split.getStart();
     end = start + split.getLength();
     final Path file = split.getPath();
+    compressionCodecs = new CompressionCodecFactory(job);
+    codec = compressionCodecs.getCodec(file);
 
     // open the file and seek to the start of the split
     final FileSystem fs = file.getFileSystem(job);
     fileIn = fs.open(file);
     if (isCompressedInput()) {
-      compressionCodecs = new CompressionCodecFactory(job);
-      codec = compressionCodecs.getCodec(file);
       decompressor = CodecPool.getDecompressor(codec);
       if (codec instanceof SplittableCompressionCodec) {
         final SplitCompressionInputStream cIn =
@@ -166,6 +166,9 @@ public class LineRecordReader extends RecordReader<LongWritable, Text> {
     while (getFilePosition() <= end) {
       newSize = in.readLine(value, maxLineLength,
           Math.max(maxBytesToConsume(pos), maxLineLength));
+      if (newSize == 0) {
+        break;
+      }
       pos += newSize;
       if (newSize < maxLineLength) {
         break;
@@ -216,4 +219,4 @@ public class LineRecordReader extends RecordReader<LongWritable, Text> {
       }
     }
   }
-}
+}