code: private synchronized boolean shouldRetry(Throwable e) {
      boolean isIOException = e instanceof IOException
        || (e.getCause() != null && e.getCause() instanceof IOException);
      boolean hasRemainingRetries = retryCount < maxRetries;
      return isIOException && hasRemainingRetries;
    }
docs: Returns true if we should retry due a block fetch failure. We will retry if and only if
  the exception was an IOException and we haven't retried 'maxRetries' times already.