Parcourir la source

MAPREDUCE-6261. NullPointerException if MapOutputBuffer.flush invoked twice. Contributed by Tsuyoshi OZAWA
(cherry picked from commit 4981d082d4f3c82d1c2c900c7488b83bf20301cc)

Jason Lowe il y a 10 ans
Parent
commit
386e62ace3

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

@@ -137,6 +137,9 @@ Release 2.7.0 - UNRELEASED
     MAPREDUCE-4286. TestClientProtocolProviderImpls passes on failure 
     conditions. (Devaraj K via ozawa)
 
+    MAPREDUCE-6261. NullPointerException if MapOutputBuffer.flush invoked
+    twice (Tsuyoshi OZAWA via jlowe)
+
 Release 2.6.1 - UNRELEASED
 
   INCOMPATIBLE CHANGES

+ 4 - 0
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/MapTask.java

@@ -1458,6 +1458,10 @@ public class MapTask extends Task {
     public void flush() throws IOException, ClassNotFoundException,
            InterruptedException {
       LOG.info("Starting flush of map output");
+      if (kvbuffer == null) {
+        LOG.info("kvbuffer is null. Skipping flush.");
+        return;
+      }
       spillLock.lock();
       try {
         while (spillInProgress) {