diff --git a/provider/storage-aws/src/main/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImpl.java b/provider/storage-aws/src/main/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImpl.java index 007ec26960c45b4ba7446c98c7b31b107d19019b..b9001f9801426f5a2cf5e71f2b5f745dc3b78878 100644 --- a/provider/storage-aws/src/main/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImpl.java +++ b/provider/storage-aws/src/main/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImpl.java @@ -101,7 +101,7 @@ public class CloudStorageImpl implements ICloudStorage { CompletableFuture<List<RecordProcessor>> results = CompletableFuture.allOf(cfs) .thenApply(ignored -> futures.stream() .map(CompletableFuture::join) - .collect(Collectors.toList())); + .toList()); List<RecordProcessor> recordProcessors = results.get(); for(RecordProcessor recordProcessor : recordProcessors){ @@ -112,6 +112,7 @@ public class CloudStorageImpl implements ICloudStorage { , recordProcessor.getRecordId() , recordProcessor.getException().getErrorMessage() )); + throw recordProcessor.getException(); } } } catch (Exception e) { diff --git a/provider/storage-aws/src/test/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImplTest.java b/provider/storage-aws/src/test/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImplTest.java index d52e6e60a09108ef85c3065141930145238d51f1..6123470b365fd99b5601c5392ebebf139e04cda1 100644 --- a/provider/storage-aws/src/test/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImplTest.java +++ b/provider/storage-aws/src/test/java/org/opengroup/osdu/storage/provider/aws/CloudStorageImplTest.java @@ -138,7 +138,18 @@ class CloudStorageImplTest { } @Test - void write_shouldThrowAppException_whenRecordProcessingFails() { + void write_shouldThrowException_whenRecordProcessingHasException() { + when(recordProcessing.getRecordData()).thenReturn(recordData); + doNothing().when(userAccessService).validateRecordAcl(any()); + + when(recordProcessing.getRecordMetadata()).thenReturn(record); + doThrow(AmazonServiceException.class).when(s3RecordClient).saveRecord(recordProcessing, dataPartition); + + assertThrows(AppException.class, () -> repo.write(recordProcessing)); + } + + @Test + void write_shouldThrowAppException_whenRecordProcessingThrowsException() { when(recordProcessing.getRecordData()).thenReturn(recordData); doNothing().when(userAccessService).validateRecordAcl(any());