docs: private void replaceContent(IndexNode other) throws IOException {
        try {
           lock.writeLock().lock();
           this.prefix = other.prefix;
           this.keyParts = other.keyParts;
           this.innerNodes = other.innerNodes;
           this.leafNodes = other.leafNodes;
           this.contentLength = -1;
           this.totalLength = -1;
        } finally {
           lock.writeLock().unlock();
        }
  
        // don't have to acquire any lock here
        // the only node with offset < 0 is the root - we can't lose reference to it
        if (offset >= 0) {
           store(new Index.IndexSpace(offset, occupiedSpace));
        }
     }