docs: protected void flushMessagesInForwardTable(Address target) {
          // for forwarded messages, we need to receive the forwarded message from the coordinator, to prevent this case:
          // - V1={A,B,C}
          // - A crashes
          // - C installs V2={B,C}
          // - C forwards messages 3 and 4 to B (the new coord)
          // - B drops 3 because its view is still V1
          // - B installs V2
          // - B receives message 4 and broadcasts it
          // ==> C's message 4 is delivered *before* message 3 !
          // ==> By resending 3 until it is received, then resending 4 until it is received, we make sure this won't happen
          // (see https://issues.jboss.org/browse/JGRP-1449)
  
          // Forward the first entry and wait for the ack
          Map.Entry<Long,Message> first=forward_table.firstEntry();
          if(first == null)
              return;
          Long key=first.getKey();
          Message val=first.getValue();
          Message forward_msg;
  
          while(flushing && running && !forward_table.isEmpty()) {
              forward_msg=val.copy();
              forward_msg.setDest(target);
              forward_msg.setFlag(Message.Flag.DONT_BUNDLE);
              if(log.isTraceEnabled())
                  log.trace(local_addr + ": flushing (forwarding) " + "::" + key + " to target " + target);
              ack_promise.reset();
              down_prot.down(forward_msg);
              Long ack=ack_promise.getResult(500);
              if((Objects.equals(ack, key)) || !forward_table.containsKey(key))
                  break;
          }
  
          for(Map.Entry<Long,Message> entry: forward_table.entrySet()) {
              key=entry.getKey();
              val=entry.getValue();
              if(flushing && running) {
                  forward_msg=val.copy();
                  forward_msg.setDest(target);
                  forward_msg.setFlag(Message.Flag.DONT_BUNDLE);
                  if(log.isTraceEnabled())
                      log.trace(local_addr + ": flushing (forwarding) " + "::" + key + " to target " + target);
                  down_prot.down(forward_msg);
              }
          }
      }