Repository: hbase
Updated Branches:
  refs/heads/branch-1 316e02e3d -> d5749bf8e


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/d5749bf8
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d5749bf8
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d5749bf8

Branch: refs/heads/branch-1
Commit: d5749bf8ed2074c2da7788db03008695622f9da7
Parents: 316e02e
Author: Pankaj Kumar <pankaj...@huawei.com>
Authored: Mon Jun 12 19:53:48 2017 +0800
Committer: tedyu <yuzhih...@gmail.com>
Committed: Mon Jun 19 06:39:27 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/d5749bf8/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/d5749bf8/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 9d4031e..443d4b2 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
@@ -118,10 +118,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