@Override
 public Map<Integer, Object> invokeOnAllPartitions(
     String serviceName, OperationFactory operationFactory) throws Exception {
   Map<Address, List<Integer>> memberPartitions =
       nodeEngine.getPartitionService().getMemberPartitionsMap();
   InvokeOnPartitions invokeOnPartitions =
       new InvokeOnPartitions(this, serviceName, operationFactory, memberPartitions);
   return invokeOnPartitions.invoke();
 }
  @Override
  public Map<Integer, Object> invokeOnPartitions(
      String serviceName, OperationFactory operationFactory, int[] partitions) throws Exception {
    Map<Address, List<Integer>> memberPartitions = new HashMap<Address, List<Integer>>(3);
    InternalPartitionService partitionService = nodeEngine.getPartitionService();
    for (int partition : partitions) {
      Address owner = partitionService.getPartitionOwnerOrWait(partition);

      if (!memberPartitions.containsKey(owner)) {
        memberPartitions.put(owner, new ArrayList<Integer>());
      }

      memberPartitions.get(owner).add(partition);
    }
    InvokeOnPartitions invokeOnPartitions =
        new InvokeOnPartitions(this, serviceName, operationFactory, memberPartitions);
    return invokeOnPartitions.invoke();
  }