HBASE-7996 Clean up resource leak in MultiTableInputFormat
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1453720 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
92d7a45476
commit
4fa8e86f29
|
@ -116,7 +116,10 @@ public abstract class MultiTableInputFormatBase extends
|
|||
byte[] tableName = scan.getAttribute(Scan.SCAN_ATTRIBUTES_TABLE_NAME);
|
||||
if (tableName == null)
|
||||
throw new IOException("A scan object did not have a table name");
|
||||
HTable table = new HTable(context.getConfiguration(), tableName);
|
||||
|
||||
HTable table = null;
|
||||
try {
|
||||
table = new HTable(context.getConfiguration(), tableName);
|
||||
Pair<byte[][], byte[][]> keys = table.getStartEndKeys();
|
||||
if (keys == null || keys.getFirst() == null ||
|
||||
keys.getFirst().length == 0) {
|
||||
|
@ -149,14 +152,15 @@ public abstract class MultiTableInputFormatBase extends
|
|||
stopRow) <= 0) && keys.getSecond()[i].length > 0 ? keys
|
||||
.getSecond()[i] : stopRow;
|
||||
InputSplit split =
|
||||
new TableSplit(tableName, scan, splitStart,
|
||||
splitStop, regionLocation);
|
||||
new TableSplit(tableName, scan, splitStart, splitStop, regionLocation);
|
||||
splits.add(split);
|
||||
if (LOG.isDebugEnabled())
|
||||
LOG.debug("getSplits: split -> " + (count++) + " -> " + split);
|
||||
}
|
||||
}
|
||||
table.close();
|
||||
} finally {
|
||||
if (null != table) table.close();
|
||||
}
|
||||
}
|
||||
return splits;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue