TransactionManager tm = c.getAdvancedCache().getTransactionManager();
tm.begin();
c.getAdvancedCache().lock(new Key("k"));
LockManager lockManager = TestingUtil.extractComponent(c, LockManager.class);
assert cex.ctx instanceof LocalTxInvocationContext;
assert cex.ctx.getLookedUpEntries().size() == 0 : "Looked up key should not be in transactional invocation context " +
"as we don't perform any changes";
assertEquals(lockManager.getNumberOfLocksHeld(), 1, "Only one lock should be held");
c.put(new Key("k"), "v2");
assert cex.ctx.getLookedUpEntries().size() == 1 : "Still should only be one entry in the context";
assert lockManager.getNumberOfLocksHeld() == 1 : "Only one lock should be held";
tm.commit();
assert lockManager.getNumberOfLocksHeld() == 0 : "No locks should be held anymore";
assert "v2".equals(c.get(new Key("k")));
}