From 3d5d91a1e4d31ec23e45cc0b33fd46c4da088f71 Mon Sep 17 00:00:00 2001 From: harlekin <5800926-mw102@users.noreply.gitlab.com> Date: Tue, 30 Aug 2022 18:11:17 +0000 Subject: [PATCH] Make client report connection issues to servers --- src/main/java/com/sheepit/client/Client.java | 6 +++++- src/main/java/com/sheepit/client/Error.java | 1 + src/main/java/com/sheepit/client/Server.java | 7 +++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/sheepit/client/Client.java b/src/main/java/com/sheepit/client/Client.java index b31d587..734142d 100644 --- a/src/main/java/com/sheepit/client/Client.java +++ b/src/main/java/com/sheepit/client/Client.java @@ -1090,12 +1090,16 @@ import okhttp3.HttpUrl; // the client cannot recover from this error (it's server side config) so exit the retry loop confirmJobReturnCode = Type.IMAGE_TOO_LARGE; break retryLoop; + + case SERVER_CONNECTION_FAILED: + confirmJobReturnCode = Type.NETWORK_ISSUE; + break; case ERROR_BAD_RESPONSE: // set the error and retry on next loop confirmJobReturnCode = Type.ERROR_BAD_UPLOAD_RESPONSE; break; - + default: // do nothing, try to do a request on the next loop break; diff --git a/src/main/java/com/sheepit/client/Error.java b/src/main/java/com/sheepit/client/Error.java index 44cf2d2..d4cc488 100644 --- a/src/main/java/com/sheepit/client/Error.java +++ b/src/main/java/com/sheepit/client/Error.java @@ -108,6 +108,7 @@ public class Error { ERROR_NO_ROOT(2), ERROR_BAD_RESPONSE(3), ERROR_REQUEST_FAILED(5), + SERVER_CONNECTION_FAILED(6), ; private final int id; diff --git a/src/main/java/com/sheepit/client/Server.java b/src/main/java/com/sheepit/client/Server.java index d2424cd..2dac58b 100644 --- a/src/main/java/com/sheepit/client/Server.java +++ b/src/main/java/com/sheepit/client/Server.java @@ -650,6 +650,13 @@ public class Server extends Thread { return ServerCode.UNKNOWN; } + catch (ConnectException e) { + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + e.printStackTrace(pw); + this.log.error(checkpoint, String.format("Server::HTTPSendFile Error in upload process. Exception %s stacktrace ", e.getMessage()) + sw.toString()); + return ServerCode.SERVER_CONNECTION_FAILED; + } catch (IOException e) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw);