X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fcore%2FNodeManager.java;h=971d5c514ac11f29c72248873c83dbf087d6c224;hb=fa2475af2c06ae03a4338a3fc1e327dc1970faf4;hp=b919cfe1434b46c07bf4bd081bd1340fa35ac87b;hpb=03c0530e4536d194afa0556c45e07f4d4df35439;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/core/NodeManager.java b/src/net/pterodactylus/jsite/core/NodeManager.java index b919cfe..971d5c5 100644 --- a/src/net/pterodactylus/jsite/core/NodeManager.java +++ b/src/net/pterodactylus/jsite/core/NodeManager.java @@ -25,6 +25,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -257,10 +258,9 @@ public class NodeManager implements Iterable, HighLevelClientListener { logger.fine("loaded " + loadedNodes.size() + " nodes from config"); synchronized (syncObject) { nodes.clear(); - nodes.addAll(loadedNodes); - } - for (Node node: nodes) { - fireNodeAdded(node); + for (Node node: nodes) { + addNode(node); + } } } @@ -301,11 +301,17 @@ public class NodeManager implements Iterable, HighLevelClientListener { * @see #connect(Node) * @param node * The node to connect to + * @throws UnknownHostException + * if the hostname of the node can not be resolved */ - public void addNode(Node node) { + public void addNode(Node node) throws UnknownHostException { synchronized (syncObject) { if (!nodes.contains(node)) { + HighLevelClient highLevelClient= new HighLevelClient(clientName, node.getHostname(), node.getPort()); nodes.add(node); + clientNodes.put(highLevelClient, node); + nodeClients.put(node, highLevelClient); + highLevelClient.addHighLevelClientListener(this); fireNodeAdded(node); } } @@ -337,13 +343,11 @@ public class NodeManager implements Iterable, HighLevelClientListener { * The node to connect to */ public void connect(Node node) { + HighLevelClient highLevelClient; + synchronized (syncObject) { + highLevelClient = nodeClients.get(node); + } try { - HighLevelClient highLevelClient = new HighLevelClient(clientName, node.getHostname(), node.getPort()); - synchronized (syncObject) { - clientNodes.put(highLevelClient, node); - nodeClients.put(node, highLevelClient); - } - highLevelClient.addHighLevelClientListener(this); highLevelClient.connect(); } catch (IOException ioe1) { fireNodeDisconnected(node, ioe1);