summaryrefslogtreecommitdiff
path: root/src/test/java/com/amazon
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/amazon')
-rw-r--r--src/test/java/com/amazon/carbonado/repo/map/TestTransaction.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/test/java/com/amazon/carbonado/repo/map/TestTransaction.java b/src/test/java/com/amazon/carbonado/repo/map/TestTransaction.java
index cbaa431..3c53252 100644
--- a/src/test/java/com/amazon/carbonado/repo/map/TestTransaction.java
+++ b/src/test/java/com/amazon/carbonado/repo/map/TestTransaction.java
@@ -265,6 +265,47 @@ public class TestTransaction extends TestCase {
assertEquals(0, storage.query().count());
}
+ public void testNestedRollback2() throws Exception {
+ Storage<StorableTestBasic> storage = mRepo.storageFor(StorableTestBasic.class);
+
+ assertEquals(0, storage.query().count());
+
+ Transaction outer = mRepo.enterTransaction();
+
+ {
+ Transaction txn = mRepo.enterTransaction();
+ StorableTestBasic stb = storage.prepare();
+ stb.setId(1);
+ stb.setStringProp("");
+ stb.setIntProp(0);
+ stb.setLongProp(0);
+ stb.setDoubleProp(0);
+ stb.insert();
+
+ txn.exit();
+
+ assertEquals(0, storage.query().count());
+ }
+
+ {
+ Transaction txn = mRepo.enterTransaction();
+ StorableTestBasic stb = storage.prepare();
+ stb.setId(2);
+ stb.setStringProp("");
+ stb.setIntProp(0);
+ stb.setLongProp(0);
+ stb.setDoubleProp(0);
+ stb.insert();
+
+ txn.exit();
+
+ assertEquals(0, storage.query().count());
+ }
+
+ outer.commit();
+ outer.exit();
+ }
+
public void testDeadlock() throws Exception {
// This test makes sure that transaction locker is not the current
// thread. Top transactions will deadlock.