diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2QuarantineService.java b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2QuarantineService.java index 50a5a5272f51c427f97caa85018e106f2852ca76..e2997b86c97129a88fa2f78244313a87b5c25c8a 100644 --- a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2QuarantineService.java +++ b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2QuarantineService.java @@ -45,11 +45,6 @@ public class Osi2QuarantineService { } } - void tryUploadSortedFiles(List<Osi2FileUpload> sortedUploadFiles) { - uploadFilesToQuarantine(sortedUploadFiles); - waitForVirusScan(sortedUploadFiles); - } - List<Osi2FileUpload> deriveSortedUploadFiles(List<OzgCloudFile> ozgCloudFiles) { return ozgCloudFiles.stream() .sorted(Comparator.comparing(OzgCloudFile::getSize).reversed()) @@ -57,6 +52,11 @@ public class Osi2QuarantineService { .toList(); } + void tryUploadSortedFiles(List<Osi2FileUpload> sortedUploadFiles) { + uploadFilesToQuarantine(sortedUploadFiles); + waitForVirusScan(sortedUploadFiles); + } + void uploadFilesToQuarantine(List<Osi2FileUpload> uploads) { uploads.forEach(this::uploadFileToQuarantine); } @@ -91,6 +91,12 @@ public class Osi2QuarantineService { .build(); } + void waitForVirusScan(List<Osi2FileUpload> osi2FileMetadata) { + if (!waitUntil(() -> checkVirusScanCompleted(osi2FileMetadata), POLLING_INTERVAL, POLLING_TIMEOUT)) { + throw new Osi2RuntimeException("Expect the scan to complete after %d seconds!".formatted(POLLING_TIMEOUT.getSeconds())); + } + } + synchronized boolean checkVirusScanCompleted(List<Osi2FileUpload> osi2FileMetadata) { return osi2FileMetadata.stream() .allMatch(this::checkOneVirusScanCompleted); @@ -104,12 +110,6 @@ public class Osi2QuarantineService { } } - void waitForVirusScan(List<Osi2FileUpload> osi2FileMetadata) { - if (!waitUntil(() -> checkVirusScanCompleted(osi2FileMetadata), POLLING_INTERVAL, POLLING_TIMEOUT)) { - throw new Osi2RuntimeException("Expect the scan to complete after %d seconds!".formatted(POLLING_TIMEOUT.getSeconds())); - } - } - void deleteAttachments(List<Osi2FileUpload> uploads) { uploads.stream() .map(Osi2FileUpload::guid)