@Override
  public Rename2ResponseProto rename2(RpcController controller, Rename2RequestProto req)
      throws ServiceException {

    try {
      server.rename2(
          req.getSrc(), req.getDst(), req.getOverwriteDest() ? Rename.OVERWRITE : Rename.NONE);
    } catch (IOException e) {
      throw new ServiceException(e);
    }
    return VOID_RENAME2_RESPONSE;
  }
  @Override
  public Rename2ResponseProto rename2(RpcController controller, Rename2RequestProto req)
      throws ServiceException {

    try {
      Options.Rename[] options;
      if (req.hasKeepEncodingStatus() && req.getKeepEncodingStatus()) {
        options = new Rename[2];
        options[1] = Rename.KEEP_ENCODING_STATUS;
      } else {
        options = new Rename[1];
      }
      options[0] = req.getOverwriteDest() ? Rename.OVERWRITE : Rename.NONE;
      server.rename2(req.getSrc(), req.getDst(), options);
    } catch (IOException e) {
      throw new ServiceException(e);
    }
    return VOID_RENAME2_RESPONSE;
  }