Program: 7080
Project: 7080
Buggy source:
/** 
 * Relays job-level and task-level information about a particular MapReduce program run.
 */
@GET @Path("String_Node_Str") public void getMapReduceInfo(HttpRequest request,HttpResponder responder,@PathParam("String_Node_Str") String namespaceId,@PathParam("String_Node_Str") String appId,@PathParam("String_Node_Str") String mapreduceId,@PathParam("String_Node_Str") String runId){
  try {
    Id.Program programId=Id.Program.from(namespaceId,appId,ProgramType.MAPREDUCE,mapreduceId);
    Id.Run run=new Id.Run(programId,runId);
    ApplicationSpecification appSpec=store.getApplication(programId.getApplication());
    if (appSpec == null) {
      throw new NotFoundException(programId.getApplication());
    }
    if (!appSpec.getMapReduce().containsKey(mapreduceId)) {
      throw new NotFoundException(programId);
    }
    RunRecord runRecord=store.getRun(programId,runId);
    if (runRecord == null) {
      throw new NotFoundException(run);
    }
    MRJobInfo mrJobInfo;
    try {
      mrJobInfo=mrJobClient.getMRJobInfo(run);
    }
 catch (    IOException ioe) {
      LOG.debug("String_Node_Str",run,ioe);
      mrJobInfo=mapReduceMetricsInfo.getMRJobInfo(run);
    }
catch (    NotFoundException nfe) {
      LOG.debug("String_Node_Str",run,nfe);
      mrJobInfo=mapReduceMetricsInfo.getMRJobInfo(run);
    }
    mrJobInfo.setState(runRecord.getStatus().name());
    mrJobInfo.setStartTime(TimeUnit.SECONDS.toMillis(runRecord.getStartTs()));
    Long stopTs=runRecord.getStopTs();
    if (stopTs != null) {
      mrJobInfo.setStopTime(TimeUnit.SECONDS.toMillis(stopTs));
    }
    responder.sendJson(HttpResponseStatus.OK,mrJobInfo);
  }
 catch (  NotFoundException e) {
    LOG.warn("String_Node_Str",e);
    responder.sendString(HttpResponseStatus.NOT_FOUND,e.getMessage());
  }
catch (  Exception e) {
    LOG.error("String_Node_Str",runId,e);
    responder.sendString(HttpResponseStatus.INTERNAL_SERVER_ERROR,e.getMessage());
  }
}

Fixed version (ground truth):
/** 
 * Relays job-level and task-level information about a particular MapReduce program run.
 */
@GET @Path("String_Node_Str") public void getMapReduceInfo(HttpRequest request,HttpResponder responder,@PathParam("String_Node_Str") String namespaceId,@PathParam("String_Node_Str") String appId,@PathParam("String_Node_Str") String mapreduceId,@PathParam("String_Node_Str") String runId){
  try {
    Id.Program programId=Id.Program.from(namespaceId,appId,ProgramType.MAPREDUCE,mapreduceId);
    Id.Run run=new Id.Run(programId,runId);
    ApplicationSpecification appSpec=store.getApplication(programId.getApplication());
    if (appSpec == null) {
      throw new NotFoundException(programId.getApplication());
    }
    if (!appSpec.getMapReduce().containsKey(mapreduceId)) {
      throw new NotFoundException(programId);
    }
    RunRecord runRecord=store.getRun(programId,runId);
    if (runRecord == null) {
      throw new NotFoundException(run);
    }
    MRJobInfo mrJobInfo=mrJobInfoFetcher.getMRJobInfo(run);
    mrJobInfo.setState(runRecord.getStatus().name());
    mrJobInfo.setStartTime(TimeUnit.SECONDS.toMillis(runRecord.getStartTs()));
    Long stopTs=runRecord.getStopTs();
    if (stopTs != null) {
      mrJobInfo.setStopTime(TimeUnit.SECONDS.toMillis(stopTs));
    }
    responder.sendJson(HttpResponseStatus.OK,mrJobInfo);
  }
 catch (  NotFoundException e) {
    LOG.warn("String_Node_Str",e);
    responder.sendString(HttpResponseStatus.NOT_FOUND,e.getMessage());
  }
catch (  Exception e) {
    LOG.error("String_Node_Str",runId,e);
    responder.sendString(HttpResponseStatus.INTERNAL_SERVER_ERROR,e.getMessage());
  }
}