* 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<RequestListResult> requestListCallback = highLevelClient.getRequests();
- requestListCallback.addHighLevelCallbackListener(new HighLevelCallbackListener<RequestListResult>() {
+ HighLevelCallback<RequestListResult> requestListCallback = highLevelClient.getRequests();
+ requestListCallback.addHighLevelCallbackListener(new HighLevelCallbackListener<RequestListResult>() {
- @SuppressWarnings("synthetic-access")
- public void gotResult(HighLevelCallback<RequestListResult> 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<RequestListResult> 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);
+ }
+ }
+ });
}
//
* {@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. */
/**
* {@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;
+ }
}
//