return null;
}
protected void pushState(Map<Address, Collection<InternalCacheEntry>> states)
throws InterruptedException, ExecutionException, PendingStateTransferException {
NotifyingNotifiableFuture<Object> stateTransferFuture = new AggregatingNotifyingFutureImpl(null, states.size());
for (Map.Entry<Address, Collection<InternalCacheEntry>> entry : states.entrySet()) {
final Address target = entry.getKey();
Collection<InternalCacheEntry> state = entry.getValue();
stateTransferManager.pushStateToNode(stateTransferFuture, newViewId, target, state);
}
// wait to see if all servers received the new state
// TODO we might want to retry the state transfer operation if it failed on some of the nodes and the view hasn't changed
try {
stateTransferFuture.get();
} catch (ExecutionException e) {
log.errorTransferringState(e);
throw e;
}
log.debugf("Node finished pushing data for rehash %d.", newViewId);