{
// Acquire locks
Object owner = getOwnerForLock();
subtreeLock = subtreeRoot.getLock();
subtreeLock.acquireAll(owner, stateFetchTimeout, NodeLock.LockType.WRITE);
subtreeLocked = true;
// Lock the parent, as we're about to write to it
parent = subtreeRoot.getParent();
if (parent != null)