@Override
  public boolean requestMemberRemoval(InternalDistributedMember member, String reason) {
    try {
      return membership.requestMemberRemoval(member, reason);
    } catch (MemberDisconnectedException | MembershipClosedException e) {
      checkCancelled();
      throw new DistributedSystemDisconnectedException("Distribution is closed");
    } catch (RuntimeException e) {
      checkCancelled();
      if (!membership.isConnected()) {
        throw new DistributedSystemDisconnectedException("Distribution is closed", e);
      }
      throw e;
    }
  }
Perform the grossness associated with sending a message over a DirectChannel

@param destinations the list of destinations
@param content the message
@return all recipients who did not receive the message (null if all received it)
@throws NotSerializableException if the message is not serializable
geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java