log.trace("Before putIfAbsent");
f = c1.putIfAbsentAsync(key, v4);
assert f != null;
assert c2.get(key).equals(v3);
if (!isLockOwner(c1, key))
key.allowSerialization();
assert !f.isCancelled();
assertFutureValue(f, v3);
assert f.isDone();
assertOnAllCaches(key, v3, c1, c2);