protected void invokePutAllOperationFactory(
     Address address, final long size, int[] partitions, MapEntries[] entries) throws Exception {
   OperationFactory factory =
       operationProvider.createPutAllOperationFactory(name, partitions, entries);
   final long time = System.currentTimeMillis();
   operationService.invokeOnPartitions(SERVICE_NAME, factory, partitions);
   localMapStats.incrementPuts(size, System.currentTimeMillis() - time);
 }
 private Map<Integer, Object> retryPartitions(
     Collection<Integer> partitions, OperationFactory operationFactory) {
   try {
     return operationService.invokeOnPartitions(SERVICE_NAME, operationFactory, partitions);
   } catch (Throwable t) {
     throw rethrow(t);
   }
 }
 public Map executeOnKeysInternal(Set<Data> keys, EntryProcessor entryProcessor) {
   // TODO: why are we not forwarding to executeOnKeysInternal(keys, entryProcessor, null) or some
   // other kind of fake
   // callback? now there is a lot of code duplication
   Map<Object, Object> result = new HashMap<Object, Object>();
   Collection<Integer> partitionsForKeys = getPartitionsForKeys(keys);
   try {
     OperationFactory operationFactory =
         operationProvider.createMultipleEntryOperationFactory(name, keys, entryProcessor);
     Map<Integer, Object> results =
         operationService.invokeOnPartitions(SERVICE_NAME, operationFactory, partitionsForKeys);
     for (Object object : results.values()) {
       if (object != null) {
         MapEntries mapEntries = (MapEntries) object;
         mapEntries.putAllToMap(serializationService, result);
       }
     }
   } catch (Throwable t) {
     throw rethrow(t);
   }
   return result;
 }
 protected void getAllObjectInternal(List<Data> keys, List<Object> resultingKeyValuePairs) {
   if (keys == null || keys.isEmpty()) {
     return;
   }
   if (keys.isEmpty()) {
     return;
   }
   Collection<Integer> partitions = getPartitionsForKeys(keys);
   Map<Integer, Object> responses;
   try {
     OperationFactory operationFactory =
         operationProvider.createGetAllOperationFactory(name, keys);
     responses = operationService.invokeOnPartitions(SERVICE_NAME, operationFactory, partitions);
     for (Object response : responses.values()) {
       MapEntries entries = toObject(response);
       for (int i = 0; i < entries.size(); i++) {
         resultingKeyValuePairs.add(toObject(entries.getKey(i)));
         resultingKeyValuePairs.add(toObject(entries.getValue(i)));
       }
     }
   } catch (Exception e) {
     throw rethrow(e);
   }
 }