@Test
  public void nonHAFunctionResultCollectorIsPassedPartialResultsAfterBucketMove() {
    List<InternalDistributedMember> members = getAllMembers();
    // Only run this test if there is more than two members
    Assume.assumeTrue(members.size() >= 2);

    final Iterator<InternalDistributedMember> iterator = members.iterator();
    InternalDistributedMember firstMember = iterator.next();
    InternalDistributedMember secondMember = iterator.next();

    // Execute a function which will close the cache on one source.
    try {
      ResultCollector rc = getExecution().withCollector(customCollector)
          .execute(new BucketMovingNonHAFunction(firstMember, secondMember));
      rc.getResult();
      fail("Should have thrown an exception");
    } catch (Exception expected) {
      // do nothing
    }
    assertEquals(new HashSet(members), new HashSet(customCollector.getResult()));
    assertEquals(numberOfExecutions(), customCollector.getResult().size());
  }
Test that a custom result collector will still receive all partial results from other members
when one source fails
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/FunctionServiceClientAccessorPRBase.java