assertEquals(1, cache.getTransactionTable().getNumGlobalTransactions());
assertEquals(1, cache.getTransactionTable().getNumLocalTransactions());
GlobalTransaction gtx = cache.getCurrentTransaction(tx, true);
TransactionTable table = cache.getTransactionTable();
OptimisticTransactionEntry entry = (OptimisticTransactionEntry) table.get(gtx);
assertEquals(3, entry.getTransactionWorkSpace().getNodes().size());
assertNull(mgr.getTransaction());
mgr.begin();
SamplePojo pojo2 = new SamplePojo(22, "test2");
cache2.put("/one/two", "key1", pojo2);
mgr.commit();
// let async calls propagate
TestingUtil.sleepThread((long) 1000);
assertEquals(1, cache.getTransactionTable().getNumGlobalTransactions());
assertEquals(1, cache.getTransactionTable().getNumLocalTransactions());
mgr.resume(tx);
boolean fail = false;
try
{
mgr.commit();
}
catch (Exception e)
{
fail = true;
}
assertEquals(true, fail);
assertNull(mgr.getTransaction());
assertEquals(0, cache.getTransactionTable().getNumGlobalTransactions());
assertEquals(0, cache.getTransactionTable().getNumLocalTransactions());
assertEquals(0, entry.getTransactionWorkSpace().getNodes().size());
assertTrue(cache.exists(Fqn.fromString("/one/two")));
assertNotNull(cache.getNode("/one"));
assertEquals(false, cache.getRoot().getLock().isLocked());
assertEquals(false, ((NodeSPI<Object, Object>) cache.getNode("/one")).getLock().isLocked());