/** * Compresses a buffered image thumbnail to disk. * * @param metadata the thumbnail metadata. * @param image the thumbnail's buffered image. * @param inProgress if set to true, writes inProgressImageResource to disk * @throws ResourceError if there is a problem writing to disk. */ private void compressThumbnailToDisk(Thumbnail metadata, BufferedImage image, boolean inProgress) throws IOException, ResourceError { if (diskSpaceChecking) { iRepositoryInfo.sanityCheckRepository(); } try (FileOutputStream stream = ioService.getThumbnailOutputStream(metadata)) { if (inProgress) { compressInProgressImageToStream(metadata.getSizeX(), metadata.getSizeY(), stream, inProgressImageResource); } else { compressionService.compressToStream(image, stream); } } }