code: private boolean rsyncRecoveryIndexFromCoordinator() throws IOException
     {
        File indexDirectory = new File(handler.getContext().getIndexDirectory());
        RSyncConfiguration rSyncConfiguration =  handler.getRsyncConfiguration();
  
        try
        {
           IndexRecovery indexRecovery = handler.getContext().getIndexRecovery();
           // check if index not ready
           if (!indexRecovery.checkIndexReady())
           {
              return false;
           }
           try
           {
              if(rSyncConfiguration.isRsyncOffline())
              {
                 //Switch index offline
                 indexRecovery.setIndexOffline();
              }
  
              String indexPath = handler.getContext().getIndexDirectory();
              String urlFormatString =rSyncConfiguration.generateRsyncSource(indexPath);
              RSyncJob rSyncJob =  new RSyncJob(String.format(urlFormatString, indexRecovery.getCoordinatorAddress()), indexPath,
                      rSyncConfiguration.getRsyncUserName(), rSyncConfiguration.getRsyncPassword(), OfflinePersistentIndex.NAME);
              rSyncJob.execute();
           }
           finally 
           {
              if(rSyncConfiguration.isRsyncOffline())
              {
                 //Switch index online
                 indexRecovery.setIndexOnline();
              }
           }
  
           //recovery finish correctly
           return true;
        }
        catch (RepositoryException e)
        {
           LOG.error("Cannot retrieve the indexes from the coordinator, the indexes will then be created from indexing",
                   e);
        } catch (RepositoryConfigurationException e)
        {
            LOG.error("Cannot retrieve the indexes from the coordinator, the indexes will then be created from indexing",
                    e);
        }
  
        LOG.info("Clean up index directory " + indexDirectory.getAbsolutePath());
        DirectoryHelper.removeDirectory(indexDirectory);
  
        return false;
     }
docs: Retrieves index from other node using rsync server.
  
  @throws IOException if can't clean up directory after retrieving being failed