Collection<MultiMapRecord> coll = txMap.get(key);
long timeout = tx.getTimeoutMillis();
long ttl = extendTimeout(timeout);
final MultiMapTransactionLog log;
if (coll == null) {
MultiMapResponse response = lockAndGet(key, timeout, ttl);
if (response == null) {
throw new ConcurrentModificationException("Transaction couldn't obtain lock " + getThreadId());
}
coll = createCollection(response.getRecordCollection(getNodeEngine()));
txMap.put(key, coll);
log = new MultiMapTransactionLog(key, name, ttl, getThreadId());
tx.addTransactionLog(log);
} else {
log = (MultiMapTransactionLog) tx.getTransactionLog(getTxLogKey(key));