From 09f7f5482eb1a66804f3739ea4a42c5138bc4dde Mon Sep 17 00:00:00 2001
From: kske <kai@kske.dev>
Date: Fri, 10 Apr 2020 21:57:05 +0200
Subject: [PATCH] Replaced TimeLimitExceededException by TimeoutException

This allows the removal of the java.naming module dependency.
---
 src/main/java/envoy/client/net/Client.java     | 17 ++++++++---------
 src/main/java/envoy/client/ui/LoginDialog.java |  5 ++---
 src/main/java/module-info.java                 |  1 -
 3 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/src/main/java/envoy/client/net/Client.java b/src/main/java/envoy/client/net/Client.java
index ea684a9..2440d8b 100644
--- a/src/main/java/envoy/client/net/Client.java
+++ b/src/main/java/envoy/client/net/Client.java
@@ -6,10 +6,9 @@ import java.net.Socket;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.TimeoutException;
 import java.util.logging.Logger;
 
-import javax.naming.TimeLimitExceededException;
-
 import envoy.client.data.Cache;
 import envoy.client.data.ClientConfig;
 import envoy.client.data.LocalDB;
@@ -61,14 +60,14 @@ public class Client implements Closeable {
 	 * @param receivedMessageCache a message cache containing all unread messages
 	 *                             from the server that can be relayed after
 	 *                             initialization
-	 * @throws TimeLimitExceededException if the server could not be reached
-	 * @throws IOException                if the login credentials could not be
-	 *                                    written
-	 * @throws InterruptedException       if the current thread is interrupted while
-	 *                                    waiting for the handshake response
+	 * @throws TimeoutException     if the server could not be reached
+	 * @throws IOException          if the login credentials could not be
+	 *                              written
+	 * @throws InterruptedException if the current thread is interrupted while
+	 *                              waiting for the handshake response
 	 */
 	public void performHandshake(LoginCredentials credentials, Cache<Message> receivedMessageCache)
-			throws TimeLimitExceededException, IOException, InterruptedException {
+			throws TimeoutException, IOException, InterruptedException {
 		if (online) throw new IllegalStateException("Handshake has already been performed successfully");
 		// Establish TCP connection
 		logger.finer(String.format("Attempting connection to server %s:%d...", config.getServer(), config.getPort()));
@@ -103,7 +102,7 @@ public class Client implements Closeable {
 				return;
 			}
 
-			if (System.currentTimeMillis() - start > 5000) throw new TimeLimitExceededException("Did not log in after 5 seconds");
+			if (System.currentTimeMillis() - start > 5000) throw new TimeoutException("Did not log in after 5 seconds");
 			Thread.sleep(500);
 		}
 
diff --git a/src/main/java/envoy/client/ui/LoginDialog.java b/src/main/java/envoy/client/ui/LoginDialog.java
index 8fbd78d..9126a67 100644
--- a/src/main/java/envoy/client/ui/LoginDialog.java
+++ b/src/main/java/envoy/client/ui/LoginDialog.java
@@ -1,10 +1,9 @@
 package envoy.client.ui;
 
 import java.io.IOException;
+import java.util.concurrent.TimeoutException;
 import java.util.logging.Logger;
 
-import javax.naming.TimeLimitExceededException;
-
 import javafx.application.Platform;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
@@ -135,7 +134,7 @@ public final class LoginDialog extends Dialog<Void> {
 				client.initReceiver(localDB, receivedMessageCache);
 				Platform.runLater(this::hide);
 			}
-		} catch (IOException | InterruptedException | TimeLimitExceededException e) {
+		} catch (IOException | InterruptedException | TimeoutException e) {
 			logger.warning("Could not connect to server. Trying offline mode...");
 			e.printStackTrace();
 			try {
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index 2de5fa8..3ac8357 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -12,7 +12,6 @@ module envoy {
 	requires transitive envoy.common;
 	requires transitive java.desktop;
 	requires transitive java.logging;
-	requires transitive java.naming;
 	requires transitive java.prefs;
 	requires javafx.controls;
 	requires javafx.fxml;