diff --git a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java b/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java index fd810664ebf489d0c6376f4384ccc595ba56cea1..ec9080a75ba390bad07cbbd7ec9befbc6c635b0b 100644 --- a/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java +++ b/forwarder/src/main/java/de/ozgcloud/eingang/forwarder/EingangStubReceiverStreamObserver.java @@ -33,7 +33,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; @@ -170,13 +169,22 @@ class EingangStubReceiverStreamObserver implements StreamObserver<GrpcRouteForwa void handleEndOfFile() { closeOutputPipe(); var completedIncomingFile = currentFile.toBuilder().file(getSavedFileContent()).build(); - Optional.ofNullable(groupName) - .map(group -> attachments.computeIfAbsent(group, s -> new ArrayList<>())) - .orElse(representations) - .add(completedIncomingFile); + if (Objects.isNull(groupName)) { + addAsRepresentation(completedIncomingFile); + } else { + addAsAttachment(completedIncomingFile); + } resetFileReceiving(); } + private void addAsRepresentation(IncomingFile completedIncomingFile) { + representations.add(completedIncomingFile); + } + + private void addAsAttachment(IncomingFile completedIncomingFile) { + attachments.computeIfAbsent(groupName, s -> new ArrayList<>()).add(completedIncomingFile); + } + File getSavedFileContent() { try { return receivingFileContent.get(TIMEOUT_MINUTES, TimeUnit.MINUTES);