/** * Merge all digests into one. For each sender, the new value is min(low_seqno), max(high_seqno), * max(high_seqno_seen) */ private Digest consolidateDigests(Vector<MergeData> merge_rsps, int num_mbrs) { MergeData data; Digest tmp_digest; MutableDigest retval=new MutableDigest(num_mbrs); for(int i=0; i < merge_rsps.size(); i++) { data=merge_rsps.elementAt(i); tmp_digest=data.getDigest(); if(tmp_digest == null) { if(log.isErrorEnabled()) log.error("tmp_digest == null; skipping"); continue; } retval.merge(tmp_digest); } return retval.copy(); }
copy=digest.copy();
join_digest.add((Address)i.next(), 0, 0); // ... and add the new members. their first seqno will be 1 join_rsp=new JoinRsp(new_view, join_digest != null? join_digest.copy() : null);