@SuppressWarnings("unchecked")
  @Override
  public Object up(Event evt) {

    switch (evt.getType()) {

      case Event.FIND_MBRS:
        List<Address> missing = (List<Address>) evt.getArg();

        Responses responses = new Responses(false);
        for (Address laddr : missing) {
          try {
            if (laddr instanceof JGAddress) {
              PingData pd = new PingData(laddr, true, laddr.toString(), newIpAddress(laddr));
              responses.addResponse(pd, false);
              updateUDPCache(pd);
            }
          } catch (RuntimeException e) {
            logger.warn("Unable to create PingData response", e);
            throw e;
          }
        }
        return responses;
    }
    return up_prot.up(evt);
  }
JGroups will not send messages that have IpAddress destination addresses. Instead it requires a
"logical address" and requests physical addresses from the Discovery protocol that is normally in
a JGroups stack. We don't have one of these, so we need to maintain a mapping between logical and
physical addresses.
geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/messenger/AddressManager.java