From 75ea73480936133f4780d7695956f2e1ee154654 Mon Sep 17 00:00:00 2001 From: Abhinandan Prateek Date: Sat, 24 Oct 2015 16:48:11 +0530 Subject: [PATCH] CLOUDSTACK-8592: safer handling of transaction --- framework/db/src/com/cloud/utils/db/Transaction.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/framework/db/src/com/cloud/utils/db/Transaction.java b/framework/db/src/com/cloud/utils/db/Transaction.java index e777cbd75ce..080c00e1761 100755 --- a/framework/db/src/com/cloud/utils/db/Transaction.java +++ b/framework/db/src/com/cloud/utils/db/Transaction.java @@ -35,8 +35,7 @@ public class Transaction { if (currentTxn != null) { databaseId = currentTxn.getDatabaseId(); } - TransactionLegacy txn = TransactionLegacy.open(name, databaseId, false); - try { + try (final TransactionLegacy txn = TransactionLegacy.open(name, databaseId, false)) { // if (txn.dbTxnStarted()){ // String warnMsg = "Potential Wrong Usage: TRANSACTION.EXECUTE IS WRAPPED INSIDE ANOTHER DB TRANSACTION!"; // s_logger.warn(warnMsg, new CloudRuntimeException(warnMsg)); @@ -45,8 +44,6 @@ public class Transaction { T result = callback.doInTransaction(STATUS); txn.commit(); return result; - } finally { - txn.close(); } } @@ -64,14 +61,12 @@ public class Transaction { String name = "tx-" + counter.incrementAndGet(); TransactionLegacy currentTxn = TransactionLegacy.currentTxn(false); short outer_txn_databaseId = (currentTxn != null ? currentTxn.getDatabaseId() : databaseId); - TransactionLegacy txn = TransactionLegacy.open(name, databaseId, true); - try { + try (final TransactionLegacy txn = TransactionLegacy.open(name, databaseId, true)) { txn.start(); T result = callback.doInTransaction(STATUS); txn.commit(); return result; } finally { - txn.close(); TransactionLegacy.open(outer_txn_databaseId).close(); } }