From 4981d082d4f3c82d1c2c900c7488b83bf20301cc Mon Sep 17 00:00:00 2001 From: Jason Lowe Date: Wed, 18 Feb 2015 19:28:02 +0000 Subject: [PATCH] MAPREDUCE-6261. NullPointerException if MapOutputBuffer.flush invoked twice. Contributed by Tsuyoshi OZAWA --- hadoop-mapreduce-project/CHANGES.txt | 3 +++ .../src/main/java/org/apache/hadoop/mapred/MapTask.java | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index e944d82ac2..7f4c3e7d4d 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -379,6 +379,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 diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/MapTask.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/MapTask.java index 1a4901b257..8094317829 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/MapTask.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/MapTask.java @@ -1458,6 +1458,10 @@ public void write(byte b[], int off, int len) 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) {