[hbase] Change abort to finalize; does nothing if commit ran successfully -------------------------------------------------------------------------
Key: HADOOP-2261 URL: https://issues.apache.org/jira/browse/HADOOP-2261 Project: Hadoop Issue Type: Improvement Components: contrib/hbase Reporter: stack >From Michael Bieniosek: {code}I'm trying to do an update row, so I write code like: long lockid = table.startUpdate(new Text(article.getName())); try { for (File articleInfo: article.listFiles(new NonDirectories())) { articleTable.put(lockid, columnName(articleInfo.getName()), readFile(articleInfo)); } table.commit(lockid); } finally { table.abort(lockid); } This doesn't work, because in the normal case it calls abort after commit. But I'm not sure what the code should be, eg.: long lockid = table.startUpdate(new Text(article.getName())); try { for (File articleInfo: article.listFiles(new NonDirectories())) { articleTable.put(lockid, columnName(articleInfo.getName()), readFile(articleInfo)); } table.commit(lockid); } catch (IOException e) { table.abort(lockid); throw e; } catch (RuntimeException e) { table.abort(lockid); throw e; } This gets unwieldy very quickly. Could you maybe change abort() to finalize() which either aborts or does nothing if a commit was successful? {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.