"been received (" + highest_seqno_seen + "); discarding duplicate message");
"been received (highest received=" + highest_seqno_seen + "); discarding duplicate message");
    private void deliver(Message msg, SequencerHeader hdr) {        Address original_sender=hdr.getOriginalSender();        if(original_sender == null) {            if(log.isErrorEnabled())                log.error("original sender is null, cannot swap sender address back to original sender");            return;        }        long msg_seqno=hdr.getSeqno();        // this is the ack for the message sent by myself        if(original_sender.equals(local_addr)) {            synchronized(forward_table) {                forward_table.remove(new Long(msg_seqno));            }        }        // if msg was already delivered, discard it        Long highest_seqno_seen=(Long)received_table.get(original_sender);        if(highest_seqno_seen != null) {            if(highest_seqno_seen.longValue() >= msg_seqno) {                if(log.isWarnEnabled())                log.warn("message seqno (" + original_sender + "::" + msg_seqno + " has already " +                        "been received (" + highest_seqno_seen + "); discarding duplicate message");                return;            }        }        // update the table with the new seqno        received_table.put(original_sender, new Long(msg_seqno));        // pass a copy of the message up the stack        Message tmp=msg.copy(true);        tmp.setSrc(original_sender);        passUp(new Event(Event.MSG, tmp));    }