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