@Override
    public void onComplete(VectorDeserializeOrcWriter writer) {
      CacheWriter cacheWriter = null;
      try {
        cacheWriter = writer.getCacheWriter();
        // What we were reading from disk originally.
        boolean[] cacheIncludes = writer.getOriginalCacheIncludes();
        Iterator<CacheWriter.CacheStripeData> iter = cacheWriter.stripes.iterator();
        while (iter.hasNext()) {
          processAsyncCacheData(iter.next(), cacheIncludes);
          iter.remove();
        }
      } catch (IOException e) {
        LlapIoImpl.LOG.error("Failed to cache async data", e);
      } finally {
        cacheWriter.discardData();
      }
    }
This class only exists because Java doesn't have yield return. The original method
before this change only needed yield return-s sprinkled here and there; however,
Java developers are usually paid by class, so here we go.
llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/SerDeEncodedDataReader.java