X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fcore%2FRequestManager.java;h=002cd17748ecbf4f5ac60d56054148786daf59d8;hb=d9babeba262240417325c00535e4c91c24520f2c;hp=b312d43f2e1406b0057887c672ffbc336ce0fdb7;hpb=fa2475af2c06ae03a4338a3fc1e327dc1970faf4;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/core/RequestManager.java b/src/net/pterodactylus/jsite/core/RequestManager.java index b312d43..002cd17 100644 --- a/src/net/pterodactylus/jsite/core/RequestManager.java +++ b/src/net/pterodactylus/jsite/core/RequestManager.java @@ -159,34 +159,30 @@ public class RequestManager implements NodeListener, HighLevelProgressListener { * if an I/O error occurs while communicating with the node */ private void getRequests(final Node node) throws IOException { - HighLevelClient highLevelClient = nodeManager.borrowHighLevelClient(node); + HighLevelClient highLevelClient = nodeManager.getHighLevelClient(node); if (highLevelClient == null) { logger.log(Level.WARNING, "no client for node: " + node); return; } - try { - HighLevelCallback requestListCallback = highLevelClient.getRequests(); - requestListCallback.addHighLevelCallbackListener(new HighLevelCallbackListener() { + HighLevelCallback requestListCallback = highLevelClient.getRequests(); + requestListCallback.addHighLevelCallbackListener(new HighLevelCallbackListener() { - @SuppressWarnings("synthetic-access") - public void gotResult(HighLevelCallback highLevelCallback) { - RequestListResult requestListResult; - try { - requestListResult = highLevelCallback.getResult(); - } catch (InterruptedException e) { - logger.log(Level.SEVERE, "getResult() blocked and was interrupted"); - return; - } - for (RequestResult requestResult: requestListResult) { - Request request = new Request(requestResult.getIdentifier()); - /* TODO - fill request */ - fireRequestAdded(node, request); - } + @SuppressWarnings("synthetic-access") + public void gotResult(HighLevelCallback highLevelCallback) { + RequestListResult requestListResult; + try { + requestListResult = highLevelCallback.getResult(); + } catch (InterruptedException e) { + logger.log(Level.SEVERE, "getResult() blocked and was interrupted"); + return; } - }); - } finally { - nodeManager.returnHighLevelClient(highLevelClient); - } + for (RequestResult requestResult: requestListResult) { + Request request = new Request(requestResult.getIdentifier()); + /* TODO - fill request */ + fireRequestAdded(node, request); + } + } + }); } // @@ -197,41 +193,37 @@ public class RequestManager implements NodeListener, HighLevelProgressListener { * {@inheritDoc} */ public void nodeAdded(Node node) { - HighLevelClient highLevelClient = nodeManager.borrowHighLevelClient(node); + HighLevelClient highLevelClient = nodeManager.getHighLevelClient(node); if (highLevelClient == null) { + logger.warning("got nodeAdded but no high-level client: " + node); return; } - try { - highLevelClient.addHighLevelProgressListener(this); - } finally { - nodeManager.returnHighLevelClient(highLevelClient); - } + highLevelClient.addHighLevelProgressListener(this); } /** * {@inheritDoc} */ public void nodeRemoved(Node node) { - /* ignore. */ + HighLevelClient highLevelClient = nodeManager.getHighLevelClient(node); + if (highLevelClient == null) { + logger.warning("got nodeRemoved but no high-level client: " + node); + return; + } + highLevelClient.removeHighLevelProgressListener(this); } /** * {@inheritDoc} */ public void nodeConnected(Node node) { - HighLevelClient highLevelClient = nodeManager.borrowHighLevelClient(node); + HighLevelClient highLevelClient = nodeManager.getHighLevelClient(node); if (highLevelClient == null) { logger.log(Level.WARNING, "got no high-level client for node " + node); return; } try { highLevelClient.setWatchGlobal(true); - } catch (IOException ioe1) { - /* ignore exception, disconnects are handled elsewhere. */ - } finally { - nodeManager.returnHighLevelClient(highLevelClient); - } - try { getRequests(node); } catch (IOException e) { /* ignore exception, disconnects are handled elsewhere. */ @@ -241,8 +233,19 @@ public class RequestManager implements NodeListener, HighLevelProgressListener { /** * {@inheritDoc} */ + public void nodeConnectionFailed(Node node, Throwable cause) { + /* we don't care about this. */ + } + + /** + * {@inheritDoc} + */ public void nodeDisconnected(Node node, Throwable throwable) { - /* TODO - remove all requests. */ + HighLevelClient highLevelClient = nodeManager.getHighLevelClient(node); + if (highLevelClient == null) { + logger.warning("got nodeDisconnected from node without high-level client: " + node); + return; + } } //