final Locker locker = mTree.lockExclusiveLocal(key, hash); try { return doFindAndModify(null, key, oldValue, newValue); } finally { locker.unlock(); if (doFindAndModify(txn, key, oldValue, newValue)) { return true;
final Locker locker = mTree.lockExclusiveLocal(key, hash); try { return doFindAndModify(null, key, oldValue, newValue); } finally { locker.unlock(); if (doFindAndModify(txn, key, oldValue, newValue)) { return true;
try { txn.lockExclusive(mTree.mId, key, hash); boolean result = doFindAndModify(txn, key, oldValue, newValue); txn.commit(); return result; return doFindAndModify(txn, key, oldValue, newValue); } finally { locker.unlock(); if (doFindAndModify(txn, key, oldValue, newValue)) { return true;