Program: 28154
Project: 28154
Buggy source:
private Map<String,Object> handleJob(JobExecution je,ColumnFormatter columnFormatter) throws JobSecurityException, NoSuchJobExecutionException {
  Map<String,Object> jobInfo=new HashMap<>();
  int jobParamIndex=-1;
  StringTokenizer st=new StringTokenizer("String_Node_Str","String_Node_Str");
  String[] cfData=new String[getOutputHeaders().length];
  JobOperator jobOperator=AbstractListCommand.getJobOperatorFromBatchRuntime();
  for (int index=0; index < getOutputHeaders().length; index++) {
    Object data=null;
switch (getOutputHeaders()[index]) {
case JOB_NAME:
      data="String_Node_Str" + je.getJobName();
    break;
case EXECUTION_ID:
  data="String_Node_Str" + je.getExecutionId();
break;
case BATCH_STATUS:
data=je.getBatchStatus() != null ? je.getBatchStatus() : "String_Node_Str";
break;
case EXIT_STATUS:
data=je.getExitStatus() != null ? je.getExitStatus() : "String_Node_Str";
break;
case START_TIME:
if (je.getStartTime() != null) {
data=je.getStartTime().getTime();
cfData[index]=je.getStartTime().toString();
}
 else {
data="String_Node_Str";
}
break;
case END_TIME:
if (je.getEndTime() != null) {
data=je.getEndTime().getTime();
cfData[index]=je.getEndTime().toString();
}
 else {
data="String_Node_Str";
}
break;
case JOB_PARAMETERS:
data=je.getJobParameters() == null ? new Properties() : je.getJobParameters();
jobParamIndex=index;
ColumnFormatter cf=new ColumnFormatter(new String[]{"String_Node_Str","String_Node_Str"});
for (Map.Entry e : ((Properties)data).entrySet()) cf.addRow(new String[]{e.getKey().toString(),e.getValue().toString()});
st=new StringTokenizer(cf.toString(),"String_Node_Str");
break;
case STEP_COUNT:
long exeId=executionId == null ? je.getExecutionId() : Long.valueOf(executionId);
data=jobOperator.getStepExecutions(exeId) == null ? 0 : jobOperator.getStepExecutions(exeId).size();
break;
default :
throw new IllegalArgumentException("String_Node_Str" + getOutputHeaders()[index]);
}
jobInfo.put(getOutputHeaders()[index],data);
cfData[index]=(jobParamIndex != index) ? (cfData[index] == null ? data.toString() : cfData[index]) : (st.hasMoreTokens()) ? st.nextToken() : "String_Node_Str";
}
columnFormatter.addRow(cfData);
cfData=new String[getOutputHeaders().length];
for (int i=0; i < getOutputHeaders().length; i++) cfData[i]="String_Node_Str";
while (st.hasMoreTokens()) {
cfData[jobParamIndex]=st.nextToken();
columnFormatter.addRow(cfData);
}
return jobInfo;
}

Fixed version (ground truth):
private Map<String,Object> handleJob(JobExecution je,ColumnFormatter columnFormatter) throws JobSecurityException, NoSuchJobExecutionException {
  Map<String,Object> jobInfo=new HashMap<>();
  int jobParamIndex=-1;
  StringTokenizer st=new StringTokenizer("String_Node_Str","String_Node_Str");
  String[] cfData=new String[getOutputHeaders().length];
  JobOperator jobOperator=AbstractListCommand.getJobOperatorFromBatchRuntime();
  for (int index=0; index < getOutputHeaders().length; index++) {
    Object data=null;
switch (getOutputHeaders()[index]) {
case JOB_NAME:
      data="String_Node_Str" + je.getJobName();
    break;
case EXECUTION_ID:
  data="String_Node_Str" + je.getExecutionId();
break;
case BATCH_STATUS:
data=je.getBatchStatus() != null ? je.getBatchStatus() : "String_Node_Str";
break;
case EXIT_STATUS:
data=je.getExitStatus() != null ? je.getExitStatus() : "String_Node_Str";
break;
case START_TIME:
if (je.getStartTime() != null) {
data=je.getStartTime().getTime();
cfData[index]=je.getStartTime().toString();
}
 else {
data="String_Node_Str";
}
break;
case END_TIME:
if (je.getEndTime() != null) {
data=je.getEndTime().getTime();
cfData[index]=je.getEndTime().toString();
}
 else {
data="String_Node_Str";
}
break;
case JOB_PARAMETERS:
data=je.getJobParameters() == null ? new Properties() : je.getJobParameters();
jobParamIndex=index;
ColumnFormatter cf=new ColumnFormatter(new String[]{"String_Node_Str","String_Node_Str"});
for (Map.Entry e : ((Properties)data).entrySet()) cf.addRow(new String[]{e.getKey().toString(),e.getValue().toString()});
st=new StringTokenizer(cf.toString(),"String_Node_Str");
break;
case STEP_COUNT:
long exeId=executionId == null ? je.getExecutionId() : Long.parseLong(executionId);
data=jobOperator.getStepExecutions(exeId) == null ? 0 : jobOperator.getStepExecutions(exeId).size();
break;
default :
throw new IllegalArgumentException("String_Node_Str" + getOutputHeaders()[index]);
}
jobInfo.put(getOutputHeaders()[index],data);
cfData[index]=(jobParamIndex != index) ? (cfData[index] == null ? data.toString() : cfData[index]) : (st.hasMoreTokens()) ? st.nextToken() : "String_Node_Str";
}
columnFormatter.addRow(cfData);
cfData=new String[getOutputHeaders().length];
for (int i=0; i < getOutputHeaders().length; i++) cfData[i]="String_Node_Str";
while (st.hasMoreTokens()) {
cfData[jobParamIndex]=st.nextToken();
columnFormatter.addRow(cfData);
}
return jobInfo;
}