try {
final ClientEndpoint endpoint = getEndpoint();
MapReduceService mapReduceService = getService();
NodeEngine nodeEngine = mapReduceService.getNodeEngine();
AbstractJobTracker jobTracker = (AbstractJobTracker) mapReduceService.createDistributedObject(name);
TrackableJobFuture jobFuture = new TrackableJobFuture(name, jobId, jobTracker, nodeEngine, null);
if (jobTracker.registerTrackableJob(jobFuture)) {
ICompletableFuture<Object> future = startSupervisionTask(jobFuture, mapReduceService, nodeEngine, jobTracker);
future.andThen(new ExecutionCallback<Object>() {
@Override
public void onResponse(Object response) {
endpoint.sendResponse(response, getCallId());