@Override
  protected boolean operateOnPartitionedRegion(ClusterDistributionManager dm,
      PartitionedRegion region, long startTime) throws ForceReattemptException {

    // this is executing in the WAITING_POOL_EXECUTOR
    byte responseCode = BecomePrimaryBucketReplyMessage.NOT_SECONDARY;
    BucketAdvisor bucketAdvisor = region.getRegionAdvisor().getBucketAdvisor(bucketId);

    if (bucketAdvisor.isHosting()) {
      if (bucketAdvisor.becomePrimary(isRebalance)) { // sends a request/reply message
        responseCode = BecomePrimaryBucketReplyMessage.OK;
      }
    }

    region.getPrStats().endPartitionMessagesProcessing(startTime);
    BecomePrimaryBucketReplyMessage.send(getSender(), getProcessorId(), dm, null, responseCode);

    return false;

  }
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