docs: @Override
    public Data getSync(Face face, Interest interest) throws IOException {
      CompletableFuture<Data> future = getAsync(face, interest);
  
      try {
        // process events until complete
        while (!future.isDone()) {
          synchronized (face) {
            face.processEvents();
          }
  
          if (sleepTime > 0) {
            try {
              Thread.sleep(sleepTime);
            } catch (InterruptedException e) {
              Thread.currentThread().interrupt();
            }
          }
        }
        return future.get();
      } catch (InterruptedException | ExecutionException | EncodingException e) {
        logger.log(Level.FINE, "Failed to retrieve data.", e);
        throw new IOException("Failed to retrieve data.", e);
      }
    }