@Override public void destroyNode(OverlayNode overlayNode) throws OverlayException { overlayNode.leave(); } }
public void leave(ProgressStatus progressStatus) throws StorageException { try { Key[] keys = overlayNode.leave(); Set<String> resourcesNames = resourceManager.getAllKeys(); log.info("Leaving..."); log.debug("Number of files to transfer: [" + resourcesNames.size() + "]"); if (!keys[0].equals(overlayNode.getKey())) { for (String name : resourcesNames) { Resource resource = resourceManager.find(name); put(resource, keys[0], false, progressStatus); resource.close(); } } resourceManager.deleteAll(); communicationManager.removeObserver(overlayNode.getKey().getValue()); } catch (OverlayException | IOException e) { log.error("Error while leaving dhash node: '" + overlayNode.getKey().toString() + "'"); } }