protected final void lockAndRecord(InvocationContext context, Object key, long timeout)
     throws InterruptedException {
   context.addLockedKey(key);
   lockManager.lock(key, context.getLockOwner(), timeout, TimeUnit.MILLISECONDS).lock();
 }