@VisibleForTesting
  boolean applyRaisingException() throws Exception {
    Boolean outcome = apply();
    if (thrown != null) {
      throw thrown;
    }
    return outcome;
  }
@Test
  public void testReadFailureDoesNotSurfaceInAbort() throws Throwable {
    int threshold = 50;
    SDKStreamDrainer drainer = new SDKStreamDrainer("s3://example/",
        new FakeSDKInputStream(BYTES, threshold),
        true,
        BYTES,
        EMPTY_INPUT_STREAM_STATISTICS, "test");
    drainer.applyRaisingException();

    assertAborted(drainer);
  }