import java.util.concurrent.locks.ReentrantLock;
public class NAKACK extends Protocol implements Retransmitter.RetransmitCommand, NakReceiverWindow.Listener {
private long[]              retransmit_timeout={600, 1200, 2400, 4800}; // time(s) to wait before requesting retransmission
private boolean             is_server=false;
private Address             local_addr=null;
<BUG>private final List<Address> members=new CopyOnWriteArrayList();
</BUG>
private View                view;
private long                seqno=-1;                                  // current message sequence number (starts with 0)
private long                max_xmit_size=8192;                        // max size of a retransmit message (otherwise send multiple)

import java.util.concurrent.locks.ReentrantLock;
public class NAKACK extends Protocol implements Retransmitter.RetransmitCommand, NakReceiverWindow.Listener {
private long[]              retransmit_timeout={600, 1200, 2400, 4800}; // time(s) to wait before requesting retransmission
private boolean             is_server=false;
private Address             local_addr=null;
private final List<Address> members=new CopyOnWriteArrayList<Address>();
private View                view;
private long                seqno=-1;                                  // current message sequence number (starts with 0)
private long                max_xmit_size=8192;                        // max size of a retransmit message (otherwise send multiple)
