code: @Override
      public Chunk<byte[], BytesReference> readChunk() throws IOException {
          Chunk<byte[], BytesReference> chunk = internalReadChunk();
          if (chunk != null) {
              processChunk(chunk);
          }
          return chunk;
      }
docs: Read next chunk from this stream.
  @return a chunk
  @throws IOException if chunk can not be read