in ingest/src/main/java/com/microsoft/azure/kusto/ingest/StreamingIngestClient.java [210:232]
private InputStream compressStream(InputStream uncompressedStream, boolean leaveOpen) throws IngestionClientException, IOException {
log.debug("Compressing the stream.");
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream);
byte[] b = new byte[STREAM_COMPRESS_BUFFER_SIZE];
int read = uncompressedStream.read(b);
if (read == -1) {
String message = "Empty stream.";
log.error(message);
throw new IngestionClientException(message);
}
do {
gzipOutputStream.write(b, 0, read);
} while ((read = uncompressedStream.read(b)) != -1);
gzipOutputStream.flush();
gzipOutputStream.close();
InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
byteArrayOutputStream.close();
if (!leaveOpen) {
uncompressedStream.close();
}
return inputStream;
}