public static BecomePrimaryBucketResponse send(InternalDistributedMember recipient,
      PartitionedRegion pr, int bid, boolean isRebalance) {

    Assert.assertTrue(recipient != null, "BecomePrimaryBucketMessage NULL recipient");

    BecomePrimaryBucketResponse response =
        new BecomePrimaryBucketResponse(pr.getSystem(), recipient, pr);
    BecomePrimaryBucketMessage msg =
        new BecomePrimaryBucketMessage(recipient, pr.getPRId(), response, bid, isRebalance);
    msg.setTransactionDistributed(pr.getCache().getTxManager().isDistributed());

    Set<InternalDistributedMember> failures = pr.getDistributionManager().putOutgoing(msg);
    if (failures != null && failures.size() > 0) {
      // throw new ForceReattemptException("Failed sending <" + msg + ">");
      return null;
    }
    pr.getPrStats().incPartitionMessagesSent();
    return response;
  }
Sends a message to make the recipient primary for the bucket.

@param recipient the member to to become primary
@param pr the PartitionedRegion of the bucket
@param bid the bucket to become primary for
@param isRebalance true if directed to become primary by rebalancing
@return the processor used to wait for the response
geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/BecomePrimaryBucketMessage.java