Program: 88228
Project: 88228
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<NewJobEvent> recentJobs=jmConn.getRecentJobs();
    ArrayList<NewJobEvent> runningJobs=null;
    ArrayList<NewJobEvent> scheduledJobs=null;
    if (running) {
      runningJobs=new ArrayList<NewJobEvent>();
    }
    if (scheduled) {
      scheduledJobs=new ArrayList<NewJobEvent>();
    }
    for (    NewJobEvent je : recentJobs) {
      if (running) {
      }
      if (scheduled) {
        scheduledJobs.add(je);
      }
    }
    SimpleDateFormat df=new SimpleDateFormat("String_Node_Str");
    if (running) {
      if (runningJobs.size() == 0) {
        System.out.println("String_Node_Str");
      }
 else {
        Collections.sort(runningJobs,new Comparator<NewJobEvent>(){
          @Override public int compare(          NewJobEvent o1,          NewJobEvent o2){
            return (int)(o1.getTimestamp() - o2.getTimestamp());
          }
        }
);
        System.out.println("String_Node_Str");
        for (        NewJobEvent 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,new Comparator<NewJobEvent>(){
          @Override public int compare(          NewJobEvent o1,          NewJobEvent o2){
            return (int)(o1.getTimestamp() - o2.getTimestamp());
          }
        }
);
        System.out.println("String_Node_Str");
        for (        NewJobEvent 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<NewJobEvent> recentJobs=jmConn.getRecentJobs();
    ArrayList<NewJobEvent> runningJobs=null;
    ArrayList<NewJobEvent> scheduledJobs=null;
    if (running) {
      runningJobs=new ArrayList<NewJobEvent>();
    }
    if (scheduled) {
      scheduledJobs=new ArrayList<NewJobEvent>();
    }
    for (    NewJobEvent je : recentJobs) {
      if (running) {
      }
      if (scheduled) {
        scheduledJobs.add(je);
      }
    }
    SimpleDateFormat df=new SimpleDateFormat("String_Node_Str");
    Comparator<NewJobEvent> njec=new Comparator<NewJobEvent>(){
      @Override public int compare(      NewJobEvent o1,      NewJobEvent 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 (        NewJobEvent 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 (        NewJobEvent 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;
  }
}