Program: 88221
Project: 88221
Buggy source:
/** 
 * Executes the list action.
 * @param args Command line arguments for the list action.
 */
private void list(String[] args){
  boolean running;
  boolean scheduled;
  CommandLine line=null;
  try {
    line=parser.parse(this.options.get(ACTION_LIST),args,false);
  }
 catch (  Exception e) {
    handleError(e);
  }
  running=line.hasOption(RUNNING_OPTION.getOpt());
  scheduled=line.hasOption(SCHEDULED_OPTION.getOpt());
  if (!running && !scheduled) {
    System.err.println("String_Node_Str");
    printHelp();
    System.exit(1);
  }
  ExtendedManagementProtocol jmConn=null;
  try {
    jmConn=getJMConnection();
    List<RecentJobEvent> recentJobs=jmConn.getRecentJobs();
    ArrayList<RecentJobEvent> runningJobs=null;
    ArrayList<RecentJobEvent> scheduledJobs=null;
    if (running) {
      runningJobs=new ArrayList<RecentJobEvent>();
    }
    if (scheduled) {
      scheduledJobs=new ArrayList<RecentJobEvent>();
    }
    for (    RecentJobEvent rje : recentJobs) {
      if (running && rje.getJobStatus().equals(JobStatus.RUNNING)) {
        runningJobs.add(rje);
      }
      if (scheduled && rje.getJobStatus().equals(JobStatus.SCHEDULED)) {
        scheduledJobs.add(rje);
      }
    }
    SimpleDateFormat df=new SimpleDateFormat("String_Node_Str");
    Comparator<RecentJobEvent> njec=new Comparator<RecentJobEvent>(){
      @Override public int compare(      RecentJobEvent o1,      RecentJobEvent o2){
        return (int)(o1.getTimestamp() - o2.getTimestamp());
      }
    }
;
    if (running) {
      if (runningJobs.size() == 0) {
        System.out.println("String_Node_Str");
      }
 else {
        Collections.sort(runningJobs,njec);
        System.out.println("String_Node_Str");
        for (        RecentJobEvent je : runningJobs) {
          System.out.println(df.format(new Date(je.getTimestamp())) + "String_Node_Str" + je.getJobID().toString()+ "String_Node_Str"+ je.getJobName());
        }
        System.out.println("String_Node_Str");
      }
    }
    if (scheduled) {
      if (scheduledJobs.size() == 0) {
        System.out.println("String_Node_Str");
      }
 else {
        Collections.sort(runningJobs,njec);
        System.out.println("String_Node_Str");
        for (        RecentJobEvent je : scheduledJobs) {
          System.out.println(df.format(new Date(je.getTimestamp())) + "String_Node_Str" + je.getJobID().toString()+ "String_Node_Str"+ je.getJobName());
        }
        System.out.println("String_Node_Str");
      }
    }
  }
 catch (  Throwable t) {
    handleError(t);
  }
 finally {
    if (jmConn != null) {
      try {
        RPC.stopProxy(jmConn);
      }
 catch (      Throwable t) {
        System.err.println("String_Node_Str");
      }
    }
    jmConn=null;
  }
}

Fixed version (ground truth):
/** 
 * Executes the list action.
 * @param args Command line arguments for the list action.
 */
private void list(String[] args){
  boolean running;
  boolean scheduled;
  CommandLine line=null;
  try {
    line=parser.parse(this.options.get(ACTION_LIST),args,false);
  }
 catch (  Exception e) {
    handleError(e);
  }
  running=line.hasOption(RUNNING_OPTION.getOpt());
  scheduled=line.hasOption(SCHEDULED_OPTION.getOpt());
  if (!running && !scheduled) {
    System.err.println("String_Node_Str");
    printHelp();
    System.exit(1);
  }
  ExtendedManagementProtocol jmConn=null;
  try {
    jmConn=getJMConnection();
    List<RecentJobEvent> recentJobs=jmConn.getRecentJobs();
    ArrayList<RecentJobEvent> runningJobs=null;
    ArrayList<RecentJobEvent> scheduledJobs=null;
    if (running) {
      runningJobs=new ArrayList<RecentJobEvent>();
    }
    if (scheduled) {
      scheduledJobs=new ArrayList<RecentJobEvent>();
    }
    for (    RecentJobEvent rje : recentJobs) {
      if (running && rje.getJobStatus().equals(JobStatus.RUNNING)) {
        runningJobs.add(rje);
      }
      if (scheduled && rje.getJobStatus().equals(JobStatus.SCHEDULED)) {
        scheduledJobs.add(rje);
      }
    }
    SimpleDateFormat df=new SimpleDateFormat("String_Node_Str");
    Comparator<RecentJobEvent> njec=new Comparator<RecentJobEvent>(){
      @Override public int compare(      RecentJobEvent o1,      RecentJobEvent o2){
        return (int)(o1.getTimestamp() - o2.getTimestamp());
      }
    }
;
    if (running) {
      if (runningJobs.size() == 0) {
        System.out.println("String_Node_Str");
      }
 else {
        Collections.sort(runningJobs,njec);
        System.out.println("String_Node_Str");
        for (        RecentJobEvent je : runningJobs) {
          System.out.println(df.format(new Date(je.getTimestamp())) + "String_Node_Str" + je.getJobID().toString()+ "String_Node_Str"+ je.getJobName());
        }
        System.out.println("String_Node_Str");
      }
    }
    if (scheduled) {
      if (scheduledJobs.size() == 0) {
        System.out.println("String_Node_Str");
      }
 else {
        Collections.sort(scheduledJobs,njec);
        System.out.println("String_Node_Str");
        for (        RecentJobEvent je : scheduledJobs) {
          System.out.println(df.format(new Date(je.getTimestamp())) + "String_Node_Str" + je.getJobID().toString()+ "String_Node_Str"+ je.getJobName());
        }
        System.out.println("String_Node_Str");
      }
    }
  }
 catch (  Throwable t) {
    handleError(t);
  }
 finally {
    if (jmConn != null) {
      try {
        RPC.stopProxy(jmConn);
      }
 catch (      Throwable t) {
        System.err.println("String_Node_Str");
      }
    }
    jmConn=null;
  }
}