From 7e6939c361a762d44a6f7a2e94b574549018eaf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Ko=C5=BEusznik?= <jan@kozusznik.cz> Date: Wed, 20 Jun 2018 14:43:47 +0200 Subject: [PATCH] count zero received bytes --- .../fiji/haas_java_client/MidlewareTunnel.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/MidlewareTunnel.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/MidlewareTunnel.java index c0a23c1e..f7a72643 100644 --- a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/MidlewareTunnel.java +++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/MidlewareTunnel.java @@ -193,6 +193,7 @@ class MidlewareTunnel implements Closeable { if(reallySend == 0) { zeroCounter++; if(zeroCounter >= ZERO_COUNT_THRESHOLD) { + log.info("zero bytes sent from middleware for " + zeroCounter + " time"); return false; } try { @@ -201,6 +202,8 @@ class MidlewareTunnel implements Closeable { Thread.currentThread().interrupt(); return false; } + } else { + zeroCounter = 0; } } while(toSend != 0 && !connection.isServerClosed()); return true; @@ -211,6 +214,7 @@ class MidlewareTunnel implements Closeable { try { OutputStream os = connection.getSocket().getOutputStream(); byte[] received = null; + int zeroCounter = 0; while (!connection.isClientClosed() && null != (received = dataTransfer.readDataFromJobNode(jobId, ipAddress, sessionCode))) { if (connection.isClientClosed()) { @@ -219,6 +223,19 @@ class MidlewareTunnel implements Closeable { if (received.length > 0) { os.write(received); os.flush(); + zeroCounter = 0; + } else { + zeroCounter++; + if(zeroCounter >= ZERO_COUNT_THRESHOLD) { + log.info("zero bytes received from middleware for " + zeroCounter + " time"); + break; + } + try { + Thread.sleep(ZERO_COUNT_PAUSE); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + break; + } } } os.flush(); -- GitLab