Repository: hbase
Updated Branches:
  refs/heads/branch-1.3 2fb68f504 -> 98cd0de41


HBASE-18180 Possible connection leak while closing BufferedMutator in 
TableOutputFormat

Signed-off-by: tedyu <yuzhih...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/98cd0de4
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/98cd0de4
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/98cd0de4

Branch: refs/heads/branch-1.3
Commit: 98cd0de41075961f728543617e9785573f813a1a
Parents: 2fb68f5
Author: Pankaj Kumar <pankaj...@huawei.com>
Authored: Tue Jun 20 10:23:59 2017 +0800
Committer: tedyu <yuzhih...@gmail.com>
Committed: Tue Jun 20 18:59:23 2017 -0700

----------------------------------------------------------------------
 .../apache/hadoop/hbase/mapred/TableOutputFormat.java | 13 +++++++++----
 .../hadoop/hbase/mapreduce/TableOutputFormat.java     | 14 ++++++++++----
 2 files changed, 19 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/98cd0de4/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java
index 08af0d3..b5b979b 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java
@@ -70,10 +70,15 @@ public class TableOutputFormat extends 
FileOutputFormat<ImmutableBytesWritable,
     }
 
     public void close(Reporter reporter) throws IOException {
-      this.m_mutator.close();
-      if (connection != null) {
-        connection.close();
-        connection = null;
+      try {
+        if (this.m_mutator != null) {
+          this.m_mutator.close();
+        }
+      } finally {
+        if (connection != null) {
+          connection.close();
+          connection = null;
+        }
       }
     }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/98cd0de4/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java
index 5904f9c..22547d7 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java
@@ -115,10 +115,16 @@ implements Configurable {
      * @see RecordWriter#close(TaskAttemptContext)
      */
     @Override
-    public void close(TaskAttemptContext context)
-    throws IOException {
-      mutator.close();
-      connection.close();
+    public void close(TaskAttemptContext context) throws IOException {
+      try {
+        if (mutator != null) {
+          mutator.close();
+        }
+      } finally {
+        if (connection != null) {
+          connection.close();
+        }
+      }
     }
 
     /**

Reply via email to