public Host replace(String failedPath, Host... failedHosts) {
        for (Host failedHost : failedHosts) {
            if (routingTable_.contains(failedHost)) {
                routingTable_.removeReference(failedHost);
            }
        }

        replace_.execute(routingTable_, new PGridPath(failedPath));
        routingTable_.refresh(maxRef_);
        for (Host failedHost : failedHosts) {
            if (registry_.containsPath(failedHost.getHostPath().toString())) {
                registry_.getIssue(failedHost.getHostPath().toString()).issueState = IssueState.SOLVED;
            }
        }
        return routingTable_.getLocalhost();
    }