code: public void reload() throws NotLoggedInException, NotConnectedException, InterruptedException {
          final XMPPConnection connection = getAuthenticatedConnectionOrThrow();
  
          RosterPacket packet = new RosterPacket();
          if (rosterStore != null && isRosterVersioningSupported()) {
              packet.setVersion(rosterStore.getRosterVersion());
          }
          rosterState = RosterState.loading;
  
          SmackFuture<IQ, Exception> future = connection.sendIqRequestAsync(packet);
  
          future.onSuccess(new RosterResultListener()).onError(new ExceptionCallback<Exception>() {
  
              @Override
              public void processException(Exception exception) {
                  rosterState = RosterState.uninitialized;
                  Level logLevel;
                  if (exception instanceof NotConnectedException) {
                      logLevel = Level.FINE;
                  } else {
                      logLevel = Level.SEVERE;
                  }
                  LOGGER.log(logLevel, "Exception reloading roster", exception);
                  for (RosterLoadedListener listener : rosterLoadedListeners) {
                      listener.onRosterLoadingFailed(exception);
                  }
              }
  
          });
      }
docs: Reloads the entire roster from the server. This is an asynchronous operation,
  which means the method will return immediately, and the roster will be
  reloaded at a later point when the server responds to the reload request.
  @throws NotLoggedInException If not logged in.
  @throws NotConnectedException
  @throws InterruptedException