MagicKey k2 = new MagicKey("k2", c2); // maps on to c2 and c3
init(k1, k2);
TransactionManager tm4 = getTransactionManager(c4);
LockManager lockManager4 = TestingUtil.extractComponent(c4, LockManager.class);
tm4.begin();
Object ret = c4.putIfAbsent(k1, "new_value");
if (testRetVals) assert "value1".equals(ret) : "Was expecting value1 but was " + ret;
ret = c4.putIfAbsent(k2, "new_value");
if (testRetVals) assert "value2".equals(ret) : "Was expecting value2 but was " + ret;
assert c4.get(k1).equals("value1");
assert c4.get(k2).equals("value2");
assert lockManager4.isLocked(k1);
assert lockManager4.isLocked(k2);
tm4.rollback();
assert !lockManager4.isLocked(k1);
assert !lockManager4.isLocked(k2);
assert c2.get(k1).equals("value1");
assert c2.get(k2).equals("value2");
assertIsInContainerImmortal(c1, k1);