private void removePendingJoins(InternalDistributedMember id) {
    synchronized (pendingJoinsLock) {
      List<InternalDistributedMember> oldPendingJoins = pendingJoins;
      if (oldPendingJoins.contains(id)) {
        List<InternalDistributedMember> newPendingJoins = new ArrayList<>(oldPendingJoins);
        newPendingJoins.remove(id);
        pendingJoins = newPendingJoins;
      }
    }
  }
Removes any pending joins that match the member id. Note: attempting to reuse the same
ArrayList instance results in some interesting deadlocks.
geode-core/src/main/java/org/apache/geode/internal/admin/remote/RemoteGfManagerAgent.java