int partitionId = nodeEngine.getPartitionService().getPartitionId(key);
operation.setThreadId(ThreadUtil.getThreadId());
try {
Future f;
Object o;
OperationService operationService = nodeEngine.getOperationService();
if (getMapConfig().isStatisticsEnabled()) {
long time = System.currentTimeMillis();
f = operationService
.createInvocationBuilder(SERVICE_NAME, operation, partitionId)
.setResultDeserialized(false)
.invoke();
o = f.get();
if (operation instanceof BasePutOperation) {
localMapStats.incrementPuts(System.currentTimeMillis() - time);
} else if (operation instanceof BaseRemoveOperation) {
localMapStats.incrementRemoves(System.currentTimeMillis() - time);
} else if (operation instanceof GetOperation) {
localMapStats.incrementGets(System.currentTimeMillis() - time);
}
} else {
f = operationService.createInvocationBuilder(SERVICE_NAME, operation, partitionId)
.setResultDeserialized(false).invoke();
o = f.get();
}
return o;
} catch (Throwable t) {