public void writeRawStream(final ZipArchiveEntry sourceZipArchiveEntry,
                               final ZipArchiveEntry destZipArchiveEntry,
                               final InputStream inputStream) throws IOException {

        final DurationTimer timer = LogUtil.startTimerIfDebugEnabled(LOGGER);
        destZipArchiveEntry.setCompressedSize(sourceZipArchiveEntry.getCompressedSize());
        destZipArchiveEntry.setCrc(sourceZipArchiveEntry.getCrc());
        destZipArchiveEntry.setExternalAttributes(sourceZipArchiveEntry.getExternalAttributes());
        destZipArchiveEntry.setExtra(sourceZipArchiveEntry.getExtra());
        destZipArchiveEntry.setExtraFields(sourceZipArchiveEntry.getExtraFields());
        destZipArchiveEntry.setGeneralPurposeBit(sourceZipArchiveEntry.getGeneralPurposeBit());
        destZipArchiveEntry.setInternalAttributes(sourceZipArchiveEntry.getInternalAttributes());
        destZipArchiveEntry.setMethod(sourceZipArchiveEntry.getMethod());
        destZipArchiveEntry.setRawFlag(sourceZipArchiveEntry.getRawFlag());
        destZipArchiveEntry.setSize(sourceZipArchiveEntry.getSize());

        putRawArchiveEntry(destZipArchiveEntry, inputStream);
//        zipArchiveOutputStream.addRawArchiveEntry(destZipArchiveEntry, inputStream);
        LOGGER.debug(() -> LogUtil.message(
                "writeRawStream() - path: {}, zipArchiveEntry: {}, bytes: {}, duration: {}",
                path,
                destZipArchiveEntry,
                ZipUtil.getEntryUncompressedSize(sourceZipArchiveEntry)
                        .map(Objects::toString)
                        .orElse("?"),
                timer));
    }
@return The number of bytes read.
stroom-proxy/stroom-proxy-app/src/main/java/stroom/proxy/app/handler/ZipWriter.java