code: boolean recoverLease(String src, boolean discardLastBlock) throws IOException {
      checkOpen();
      // We remove the file from local lease checker. Usually it is already been
      // removed by the client but we want to be extra safe.
      leasechecker.remove(src);
  
      if (this.namenodeProtocolProxy == null) {
        return versionBasedRecoverLease(src);
      }
      return methodBasedRecoverLease(src, discardLastBlock);
    }
docs: Recover a file's lease
  
  @param src a file's path
  @return if lease recovery completes
  @throws IOException