From 96d2600cff43f72700c00473bb813ee5c01c30ca Mon Sep 17 00:00:00 2001 From: Adam Vandenberg Date: Wed, 5 Mar 2014 15:55:08 -0800 Subject: Implement AutoCloseable --- src/main/java/com/amazon/carbonado/txn/TransactionPair.java | 5 +++++ src/main/java/com/amazon/carbonado/txn/TransactionScope.java | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'src/main/java/com/amazon/carbonado/txn') diff --git a/src/main/java/com/amazon/carbonado/txn/TransactionPair.java b/src/main/java/com/amazon/carbonado/txn/TransactionPair.java index f719a79..e247661 100644 --- a/src/main/java/com/amazon/carbonado/txn/TransactionPair.java +++ b/src/main/java/com/amazon/carbonado/txn/TransactionPair.java @@ -110,4 +110,9 @@ public class TransactionPair implements Transaction { public boolean preCommit() throws PersistException { return mPrimaryTransaction.preCommit() ? mSecondaryTransaction.preCommit() : false; } + + @Override + public void close() throws PersistException { + exit(); + } } diff --git a/src/main/java/com/amazon/carbonado/txn/TransactionScope.java b/src/main/java/com/amazon/carbonado/txn/TransactionScope.java index 6e94b91..6061c62 100644 --- a/src/main/java/com/amazon/carbonado/txn/TransactionScope.java +++ b/src/main/java/com/amazon/carbonado/txn/TransactionScope.java @@ -216,7 +216,7 @@ public class TransactionScope { mLock.unlock(); } } - + /** * Returns the implementation for the active transaction, only if it exists. * (does not create a transaction like getTxn() @@ -323,10 +323,10 @@ public class TransactionScope { mLock.unlock(); return; } - + Map, CursorList>> cursors; try { - cursors = mCursors; + cursors = mCursors; // Ensure that map is freed promptly. Thread-local reference to // this scope otherwise keeps map and its contents lingering around @@ -427,6 +427,11 @@ public class TransactionScope { } } + @Override + public void close() throws PersistException { + exit(); + } + public void commit() throws PersistException { TransactionScope scope = mScope; scope.mLock.lock(); -- cgit v1.2.3