X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fcore%2FNodeManager.java;h=56910aec5d37239bb9551530b602f412551ddb8c;hb=555d23b244cb89c7bf7255a7835e1d490cdffe68;hp=b9404c738bc417c8364277f589031b0d105512be;hpb=7a6a3c1c08be242d176b141f261e25b16fee84aa;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/core/NodeManager.java b/src/net/pterodactylus/jsite/core/NodeManager.java index b9404c7..56910ae 100644 --- a/src/net/pterodactylus/jsite/core/NodeManager.java +++ b/src/net/pterodactylus/jsite/core/NodeManager.java @@ -40,6 +40,7 @@ import java.util.logging.Logger; import net.pterodactylus.fcp.highlevel.HighLevelClient; import net.pterodactylus.fcp.highlevel.HighLevelClientListener; +import net.pterodactylus.fcp.highlevel.HighLevelException; import net.pterodactylus.fcp.highlevel.KeyGenerationResult; import net.pterodactylus.util.io.Closer; import net.pterodactylus.util.logging.Logging; @@ -48,7 +49,6 @@ import net.pterodactylus.util.logging.Logging; * TODO * * @author David ‘Bombe’ Roden <bombe@freenetproject.org> - * @version $Id$ */ public class NodeManager implements Iterable, PropertyChangeListener, HighLevelClientListener { @@ -120,7 +120,7 @@ public class NodeManager implements Iterable, PropertyChangeListener, High * The node that was added. */ private void fireNodeAdded(Node node) { - for (NodeListener nodeListener: nodeListeners) { + for (NodeListener nodeListener : nodeListeners) { nodeListener.nodeAdded(node); } } @@ -132,7 +132,7 @@ public class NodeManager implements Iterable, PropertyChangeListener, High * The node that was removed */ private void fireNodeRemoved(Node node) { - for (NodeListener nodeListener: nodeListeners) { + for (NodeListener nodeListener : nodeListeners) { nodeListener.nodeRemoved(node); } } @@ -144,7 +144,7 @@ public class NodeManager implements Iterable, PropertyChangeListener, High * The node that is now connected */ private void fireNodeConnected(Node node) { - for (NodeListener nodeListener: nodeListeners) { + for (NodeListener nodeListener : nodeListeners) { nodeListener.nodeConnected(node); } } @@ -158,7 +158,7 @@ public class NodeManager implements Iterable, PropertyChangeListener, High * The cause of the failure */ private void fireNodeConnectionFailed(Node node, Throwable cause) { - for (NodeListener nodeListener: nodeListeners) { + for (NodeListener nodeListener : nodeListeners) { nodeListener.nodeConnectionFailed(node, cause); } } @@ -173,7 +173,7 @@ public class NodeManager implements Iterable, PropertyChangeListener, High * if there was no exception */ private void fireNodeDisconnected(Node node, Throwable throwable) { - for (NodeListener nodeListener: nodeListeners) { + for (NodeListener nodeListener : nodeListeners) { nodeListener.nodeDisconnected(node, throwable); } } @@ -270,7 +270,7 @@ public class NodeManager implements Iterable, PropertyChangeListener, High logger.fine("loaded " + loadedNodes.size() + " nodes from config"); synchronized (syncObject) { nodes.clear(); - for (Node node: loadedNodes) { + for (Node node : loadedNodes) { addNode(node); } } @@ -291,7 +291,7 @@ public class NodeManager implements Iterable, PropertyChangeListener, High } Properties nodeProperties = new Properties(); int nodeIndex = -1; - for (Node node: nodes) { + for (Node node : nodes) { String nodePrefix = "nodes." + ++nodeIndex; nodeProperties.setProperty(nodePrefix + ".name", node.getName()); nodeProperties.setProperty(nodePrefix + ".hostname", node.getHostname()); @@ -346,6 +346,7 @@ public class NodeManager implements Iterable, PropertyChangeListener, High if (nodeClients.containsKey(node)) { disconnect(node); } + nodes.remove(node); node.removePropertyChangeListener(this); fireNodeRemoved(node); } @@ -429,10 +430,10 @@ public class NodeManager implements Iterable, PropertyChangeListener, High * public key at index 1 * @throws IOException * if an I/O error occurs communicating with the node - * @throws NoNodeException - * if no node is configured + * @throws JSiteException + * if there is a problem with the node */ - public String[] generateKeyPair() throws IOException, NoNodeException { + public String[] generateKeyPair() throws IOException, JSiteException { if (nodes.isEmpty()) { throw new NoNodeException("no node configured"); } @@ -441,6 +442,8 @@ public class NodeManager implements Iterable, PropertyChangeListener, High try { KeyGenerationResult keyGenerationResult = highLevelClient.generateKey().getResult(); return new String[] { keyGenerationResult.getInsertURI(), keyGenerationResult.getRequestURI() }; + } catch (HighLevelException hle1) { + throw new BackendException(hle1); } catch (InterruptedException e) { /* ignore. */ }