public boolean hasNext() { return index < capacity(); }
public Entry next() { if(index >= capacity()) throw new NoSuchElementException("index=" + index + ", capacity=" + capacity()); Address mbr=members != null? members[index] : null; long hd=seqnos != null? seqnos[index*2] : 0, hr=seqnos != null? seqnos[index*2+1] : 0; Entry entry=new Entry(mbr, hd, hr); index++; return entry; }
public String toString(final Address[] order, boolean print_highest_received) { StringBuilder sb=new StringBuilder(); boolean first=true; if(capacity() == 0) return "[]"; int count=0, capacity=capacity(); for(Address key: order) { long[] tmp_seqnos=key != null? get(key) : null; if(key == null || tmp_seqnos == null) continue; if(!first) sb.append(", "); else first=false; sb.append(key).append(": ").append('[').append(tmp_seqnos[0]); if(print_highest_received) sb.append(" (").append(tmp_seqnos[1]).append(")"); sb.append("]"); if(Util.MAX_LIST_PRINT_SIZE > 0 && ++count >= Util.MAX_LIST_PRINT_SIZE) { if(capacity > count) sb.append(", ..."); break; } } return sb.toString(); }
public void writeTo(DataOutput out, boolean write_addrs) throws Exception { if(write_addrs) Util.writeAddresses(members, out); else out.writeShort(members.length); for(int i=0; i < capacity(); i++) Bits.writeLongSequence(seqnos[i * 2], seqnos[i * 2 +1], out); }
public void readFrom(DataInput in, boolean read_addrs) throws Exception { if(read_addrs) { members=Util.readAddresses(in); seqnos=new long[capacity() * 2]; } else seqnos=new long[in.readShort() *2]; for(int i=0; i < seqnos.length/2; i++) Bits.readLongSequence(in, seqnos, i*2); }
if(digest == null || digest.capacity() == 0) throw new Exception("failed fetching digests from subpartition members; dropping merge response");
protected boolean isJoinResponseValid(final JoinRsp rsp) { if(rsp.getFailReason() != null) throw new SecurityException(rsp.getFailReason()); Digest tmp_digest=rsp.getDigest(); if(tmp_digest == null || tmp_digest.capacity() == 0) { log.warn("%s: digest is empty: digest=%s", gms.local_addr, rsp.getDigest()); return false; } if(!tmp_digest.contains(gms.local_addr)) { log.error("%s: digest in JOIN_RSP does not contain myself; join response: %s", gms.local_addr, rsp); return false; } if(rsp.getView() == null) { log.error("%s: JoinRsp has a null view, skipping it", gms.local_addr); return false; } return true; }
public boolean hasNext() { return index < capacity(); }
public Entry next() { if(index >= capacity()) throw new NoSuchElementException("index=" + index + ", capacity=" + capacity()); Address mbr=members != null? members[index] : null; long hd=seqnos != null? seqnos[index*2] : 0, hr=seqnos != null? seqnos[index*2+1] : 0; Entry entry=new Entry(mbr, hd, hr); index++; return entry; }
public String toString(final Address[] order, boolean print_highest_received) { StringBuilder sb=new StringBuilder(); boolean first=true; if(capacity() == 0) return "[]"; int count=0, capacity=capacity(); for(Address key: order) { long[] tmp_seqnos=key != null? get(key) : null; if(key == null || tmp_seqnos == null) continue; if(!first) sb.append(", "); else first=false; sb.append(key).append(": ").append('[').append(tmp_seqnos[0]); if(print_highest_received) sb.append(" (").append(tmp_seqnos[1]).append(")"); sb.append("]"); if(Util.MAX_LIST_PRINT_SIZE > 0 && ++count >= Util.MAX_LIST_PRINT_SIZE) { if(capacity > count) sb.append(", ..."); break; } } return sb.toString(); }
public void writeTo(DataOutput out, boolean write_addrs) throws Exception { if(write_addrs) Util.writeAddresses(members, out); else out.writeShort(members.length); for(int i=0; i < capacity(); i++) Bits.writeLongSequence(seqnos[i * 2], seqnos[i * 2 +1], out); }
public void readFrom(DataInput in, boolean read_addrs) throws Exception { if(read_addrs) { members=Util.readAddresses(in); seqnos=new long[capacity() * 2]; } else seqnos=new long[in.readShort() *2]; for(int i=0; i < seqnos.length/2; i++) Bits.readLongSequence(in, seqnos, i*2); }
if(digest == null || digest.capacity() == 0) throw new Exception("failed fetching digests from subpartition members; dropping merge response");
protected boolean isJoinResponseValid(final JoinRsp rsp) { if(rsp.getFailReason() != null) throw new SecurityException(rsp.getFailReason()); Digest tmp_digest=rsp.getDigest(); if(tmp_digest == null || tmp_digest.capacity() == 0) { log.warn("%s: digest is empty: digest=%s", gms.local_addr, rsp.getDigest()); return false; } if(!tmp_digest.contains(gms.local_addr)) { log.error("%s: digest in JOIN_RSP does not contain myself; join response: %s", gms.local_addr, rsp); return false; } if(rsp.getView() == null) { log.error("%s: JoinRsp has a null view, skipping it", gms.local_addr); return false; } return true; }