private static Predicate<Throwable> isCauseNonRetriable() {
    return throwable -> {
      Throwable unwrapped = FutureUtil.unwrapExceptions(CompletionException.class, throwable);
      return unwrapped != null && !RetriableException.class.isAssignableFrom(unwrapped.getClass());
    };
  }
Recursively mark all the blobs associated with the {@link DirIndex} to never expire (remove TTL).
@param dirIndex the {@link DirIndex} whose contents' TTL needs to be removed
@param metadata {@link Metadata} related to the request
@return A future that completes when all the blobs associated with this dirIndex are marked to
never expire.
samza-core/src/main/java/org/apache/samza/storage/blobstore/util/BlobStoreUtil.java