public Set<InternalDistributedMember> getPartitionedDataFrom(Set recipients)
      throws org.apache.geode.cache.TimeoutException, InterruptedException, QueryException,
      ForceReattemptException {
    if (Thread.interrupted()) {
      throw new InterruptedException();
    }
    if (recipients.isEmpty()) {
      return Collections.emptySet();
    }

    StreamingPartitionResponse processor = new StreamingPartitionResponse(sys, recipients);
    DistributionMessage m = createRequestMessage(recipients, processor);
    sys.getDistributionManager().putOutgoing(m);
    // should we allow this to timeout?
    Set<InternalDistributedMember> failedMembers = processor.waitForCacheOrQueryException();
    return failedMembers;
  }
Returns normally if succeeded to get data, otherwise throws an exception
geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/StreamingPartitionOperation.java