HBASE-18180 Possible connection leak while closing BufferedMutator in TableOutputFormat

Signed-off-by: tedyu <yuzhihong@gmail.com>
This commit is contained in:
Pankaj Kumar 2017-06-12 19:51:41 +08:00 committed by tedyu
parent c6e71f159c
commit ce1ce728c6
2 changed files with 18 additions and 9 deletions

View File

@ -84,13 +84,16 @@ public class TableOutputFormat extends FileOutputFormat<ImmutableBytesWritable,
}
public void close(Reporter reporter) throws IOException {
try {
if (this.m_mutator != null) {
this.m_mutator.close();
}
} finally {
if (conn != null) {
this.conn.close();
}
}
}
public void write(ImmutableBytesWritable key, Put value) throws IOException {
m_mutator.mutate(new Put(value));

View File

@ -115,11 +115,17 @@ implements Configurable {
* @see RecordWriter#close(TaskAttemptContext)
*/
@Override
public void close(TaskAttemptContext context)
throws IOException {
public void close(TaskAttemptContext context) throws IOException {
try {
if (mutator != null) {
mutator.close();
}
} finally {
if (connection != null) {
connection.close();
}
}
}
/**
* Writes a key/value pair into the table.