From 2d459203eff8a4c44dc6888c563a00e1b74df9f3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Ko=C5=BEusznik?= <jan@kozusznik.cz>
Date: Wed, 11 Jul 2018 13:54:53 +0200
Subject: [PATCH] fix: ignore reset connection

---
 .../haas_java_client/MiddlewareTunnel.java    | 26 +++++++++++--------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/MiddlewareTunnel.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/MiddlewareTunnel.java
index ab211e4a..a4a8fa1f 100644
--- a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/MiddlewareTunnel.java
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/MiddlewareTunnel.java
@@ -102,7 +102,6 @@ class MiddlewareTunnel implements Closeable {
 					try (Socket soc = ss.accept()) {
 						obtainTransferMethodIfNeeded(port);
 						doTransfer(soc);
-						
 					}
 					catch (final SocketTimeoutException e) {
 						// ignore and check interruption
@@ -120,7 +119,8 @@ class MiddlewareTunnel implements Closeable {
 						.isClosed());
 				}
 
-			} catch(RuntimeException e) {
+			}
+			catch (final RuntimeException e) {
 				log.error(e.getMessage(), e);
 				throw e;
 			}
@@ -225,7 +225,9 @@ class MiddlewareTunnel implements Closeable {
 			log.error(e.getMessage(), e);
 		}
 		catch (final SocketException e) {
-			if (!e.getMessage().equals("Socket closed")) {
+			if (!e.getMessage().equals("Socket closed") || !e.getMessage().equals(
+				"Connection reset"))
+			{
 				log.error(e.getMessage(), e);
 			}
 		}
@@ -341,24 +343,28 @@ class MiddlewareTunnel implements Closeable {
 					}
 				}
 			}
-			if(received == null) {
+			if (received == null) {
 				if (log.isDebugEnabled()) {
 					log.debug("EOF from middleware detected");
 				}
 			}
 		}
 		catch (final InterruptedIOException e) {
-			return;
+			//ignore this
+		}
+		catch(SocketException e) {
+			if(!e.getMessage().equals("Broken pipe (Write failed)")) {
+				log.error(e.getMessage(), e);
+			} 
 		}
 		catch (final IOException e) {
 			log.error(e.getMessage(), e);
-			return;
 		}
 		finally {
 			try {
 				connection.shutdownOutput();
 			}
-			catch (IOException exc) {
+			catch (final IOException exc) {
 				log.error(exc.getMessage(), exc);
 			}
 			log.debug("END: readFromMiddleware");
@@ -374,11 +380,9 @@ class MiddlewareTunnel implements Closeable {
 
 		private final Runnable[] runnable = new Runnable[2];
 
-		
 		private final Thread[] threads = new Thread[2];
-		
+
 		private final CountDownLatch latchOfBothDirections = new CountDownLatch(2);
-		
 
 		public P_Connection(final Socket soc) {
 			this.socket = soc;
@@ -434,7 +438,7 @@ class MiddlewareTunnel implements Closeable {
 
 		private void stop(final CountDownLatch localLatch) {
 			for (final Thread thread : threads) {
-				if(thread != null) {
+				if (thread != null) {
 					thread.interrupt();
 				}
 			}
-- 
GitLab