From 69da8583652c4eee454d077ee228a66559898176 Mon Sep 17 00:00:00 2001 From: woodser <woodser@protonmail.com> Date: Tue, 14 Jan 2025 14:24:17 -0500 Subject: [PATCH] check for best connection before returning singular connection --- .../main/java/haveno/core/api/XmrConnectionService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/haveno/core/api/XmrConnectionService.java b/core/src/main/java/haveno/core/api/XmrConnectionService.java index 640aa2b4..88d0117f 100644 --- a/core/src/main/java/haveno/core/api/XmrConnectionService.java +++ b/core/src/main/java/haveno/core/api/XmrConnectionService.java @@ -256,7 +256,6 @@ public final class XmrConnectionService { } public MoneroRpcConnection getBestConnection() { - accountService.checkAccountOpen(); return getBestConnection(new ArrayList<MoneroRpcConnection>()); } @@ -264,8 +263,9 @@ public final class XmrConnectionService { accountService.checkAccountOpen(); Set<MoneroRpcConnection> ignoredConnectionsSet = new HashSet<>(ignoredConnections); addLocalNodeIfIgnored(ignoredConnectionsSet); - if (connectionManager.getConnections().size() == 1 && !ignoredConnectionsSet.contains(connectionManager.getConnections().get(0))) return connectionManager.getConnections().get(0); - return connectionManager.getBestAvailableConnection(ignoredConnectionsSet.toArray(new MoneroRpcConnection[0])); + MoneroRpcConnection bestConnection = connectionManager.getBestAvailableConnection(ignoredConnectionsSet.toArray(new MoneroRpcConnection[0])); // checks connections + if (bestConnection == null && connectionManager.getConnections().size() == 1 && !ignoredConnectionsSet.contains(connectionManager.getConnections().get(0))) bestConnection = connectionManager.getConnections().get(0); + return bestConnection; } private void addLocalNodeIfIgnored(Collection<MoneroRpcConnection> ignoredConnections) { @@ -336,7 +336,7 @@ public final class XmrConnectionService { }, EXCLUDE_CONNECTION_SECONDS); // return if no connection to switch to - if (bestConnection == null) { + if (bestConnection == null || !Boolean.TRUE.equals(bestConnection.isConnected())) { log.warn("No connection to switch to"); return false; }