case Event.SET_LOCAL_ADDRESS:
local_addr=(Address)evt.getArg();
break;
case Event.GET_DIGEST_STABLE_OK:
Digest d=(Digest)evt.getArg(), copy=null;
<BUG>synchronized(digest) {

int num_elements_expected=digest.size(), num_elements_updated;
num_elements_updated=updateLocalDigest(d, local_addr);
if(num_elements_updated == num_elements_expected)</BUG>
copy=digest.copy();

case Event.SET_LOCAL_ADDRESS:
local_addr=(Address)evt.getArg();
break;
case Event.GET_DIGEST_STABLE_OK:
Digest d=(Digest)evt.getArg(), copy=null;
synchronized(latest_local_digest) {
latest_local_digest.replace(d);
if(heard_from.contains(local_addr))
copy=digest.copy();
