From 5af971c369994046a48945bfbdbb085cfd2452af Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Thu, 25 May 2023 13:28:28 +0200 Subject: [PATCH] Add waiting for Observer --- .../common/binaryfile/GrpcFileUploadUtils.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/GrpcFileUploadUtils.java b/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/GrpcFileUploadUtils.java index 7187a5d..6dbeaa7 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/GrpcFileUploadUtils.java +++ b/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/GrpcFileUploadUtils.java @@ -25,6 +25,7 @@ package de.itvsh.kop.common.binaryfile; import java.io.IOException; import java.io.InputStream; +import java.util.Objects; import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicBoolean; @@ -87,6 +88,7 @@ public class GrpcFileUploadUtils { void sendNext() { if (!done.get()) { + waitForOberver(); LOG.debug("Sending next chunk."); sendMetaData(); long sentSize = sendNextChunk(); @@ -94,6 +96,21 @@ public class GrpcFileUploadUtils { } } + private void waitForOberver() { + synchronized (this) { + while (Objects.isNull(requestObserver)) { + try { + LOG.debug("wait for observer"); + wait(300); + } catch (InterruptedException e) { + LOG.error("Error on waiting for request Observer.", e); + Thread.currentThread().interrupt(); + } + } + } + + } + long sendNextChunk() { byte[] contentToSend = readFromStream(); -- GitLab