code: public void rebuild() throws Exception
      {
          Preconditions.checkState(!executorService.isShutdown(), "cache has been closed");
  
          ensurePath();
  
          clear();
  
          List<String> children = client.getChildren().forPath(path);
          for ( String child : children )
          {
              String fullPath = ZKPaths.makePath(path, child);
              internalRebuildNode(fullPath);
  
              if ( rebuildTestExchanger != null )
              {
                  rebuildTestExchanger.exchange(new Object());
              }
          }
  
          // this is necessary so that any updates that occurred while rebuilding are taken
          offerOperation(new RefreshOperation(this, RefreshMode.FORCE_GET_DATA_AND_STAT));
      }
docs: NOTE: this is a BLOCKING method. Completely rebuild the internal cache by querying
  for all needed data WITHOUT generating any events to send to listeners.
  
  @throws Exception errors