Program: 136143
Project: 136143
Buggy source:
/** 
 * Processes the command line arguments
 * @return status of processing. the status 1 indicates that no errors has been detected. the status 0 indicates that no errors has been found but translation should not be started (e.G -help call) the status -1 indicates errors 
 */
private static int GetArguments(String[] args){
  int nextArg=0;
  int maxArg=args.length - 1;
  if (maxArg < 0) {
    return CommandLineError("String_Node_Str");
  }
  ;
  if ((args[maxArg].length() != 0) && (args[maxArg].charAt(0) == '-')) {
    if (OutputHelpMessage()) {
      return STATUS_EXIT_WITHOUT_ERROR;
    }
 else {
      return STATUS_EXIT_WITH_ERRORS;
    }
  }
  ;
  while (nextArg < maxArg) {
    String option=args[nextArg];
    if (option.equals("String_Node_Str")) {
      if (OutputHelpMessage()) {
        return STATUS_EXIT_WITHOUT_ERROR;
      }
 else {
        return STATUS_EXIT_WITH_ERRORS;
      }
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.WriteASTFlag=true;
      if (CheckForConflictingSpecOptions()) {
        return STATUS_EXIT_WITH_ERRORS;
      }
      ;
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.SpecOption=true;
      if (CheckForConflictingSpecOptions()) {
        return STATUS_EXIT_WITH_ERRORS;
      }
      ;
      nextArg=nextArg + 1;
      if (nextArg == maxArg) {
        return CommandLineError("String_Node_Str");
      }
      ;
      PcalParams.SpecFile=args[nextArg];
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.MyspecOption=true;
      if (CheckForConflictingSpecOptions()) {
        return STATUS_EXIT_WITH_ERRORS;
      }
      ;
      nextArg=nextArg + 1;
      if (nextArg == maxArg) {
        return CommandLineError("String_Node_Str");
      }
      ;
      PcalParams.SpecFile=args[nextArg];
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.Spec2Option=true;
      if (CheckForConflictingSpecOptions()) {
        return STATUS_EXIT_WITH_ERRORS;
      }
      ;
      nextArg=nextArg + 1;
      if (nextArg == maxArg) {
        return CommandLineError("String_Node_Str");
      }
      ;
      PcalParams.SpecFile=args[nextArg];
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.Myspec2Option=true;
      if (CheckForConflictingSpecOptions()) {
        return STATUS_EXIT_WITH_ERRORS;
      }
      ;
      nextArg=nextArg + 1;
      if (nextArg == maxArg) {
        return CommandLineError("String_Node_Str");
      }
      ;
      PcalParams.SpecFile=args[nextArg];
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.Debug=true;
    }
 else     if (option.equals("String_Node_Str")) {
      System.setProperty("String_Node_Str","String_Node_Str");
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.CheckTermination=true;
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.Nocfg=true;
    }
 else     if (option.equals("String_Node_Str")) {
      if (!PcalParams.FairnessOption.equals("String_Node_Str")) {
        return CommandLineError("String_Node_Str" + "String_Node_Str");
      }
      ;
      PcalParams.FairnessOption="String_Node_Str";
    }
 else     if (option.equals("String_Node_Str")) {
      if (!PcalParams.FairnessOption.equals("String_Node_Str")) {
        return CommandLineError("String_Node_Str" + "String_Node_Str");
      }
      ;
      PcalParams.FairnessOption="String_Node_Str";
    }
 else     if (option.equals("String_Node_Str")) {
      if (!PcalParams.FairnessOption.equals("String_Node_Str")) {
        return CommandLineError("String_Node_Str" + "String_Node_Str");
      }
      ;
      PcalParams.FairnessOption="String_Node_Str";
    }
 else     if (option.equals("String_Node_Str")) {
      if (!PcalParams.FairnessOption.equals("String_Node_Str")) {
        return CommandLineError("String_Node_Str" + "String_Node_Str");
      }
      ;
      PcalParams.FairnessOption="String_Node_Str";
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.LabelFlag=true;
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.ReportLabelsFlag=true;
      PcalParams.LabelFlag=true;
    }
 else     if (option.equals("String_Node_Str")) {
      nextArg=nextArg + 1;
      if (nextArg == maxArg) {
        return CommandLineError("String_Node_Str");
      }
      ;
      PcalParams.LabelRoot=args[nextArg];
    }
 else {
      return CommandLineError("String_Node_Str" + option);
    }
    ;
    nextArg=nextArg + 1;
  }
  if (nextArg > maxArg) {
    return CommandLineError("String_Node_Str");
  }
  ;
  File file=new File(args[maxArg]);
  if (file.exists()) {
    if (file.getName().lastIndexOf("String_Node_Str") == -1) {
      PcalParams.TLAInputFile=file.getPath();
    }
 else {
      if (file.getName().toLowerCase().endsWith("String_Node_Str")) {
        PcalParams.TLAInputFile=file.getPath().substring(0,file.getPath().lastIndexOf("String_Node_Str"));
      }
 else {
        return CommandLineError("String_Node_Str");
      }
    }
  }
 else {
    return CommandLineError("String_Node_Str");
  }
  return STATUS_OK;
}

Fixed version (ground truth):
/** 
 * Processes the command line arguments
 * @return status of processing. the status 1 indicates that no errors has been detected. the status 0 indicates that no errors has been found but translation should not be started (e.G -help call) the status -1 indicates errors 
 */
private static int GetArguments(String[] args){
  int nextArg=0;
  int maxArg=args.length - 1;
  if (maxArg < 0) {
    return CommandLineError("String_Node_Str");
  }
  ;
  if ((args[maxArg].length() != 0) && (args[maxArg].charAt(0) == '-')) {
    if (OutputHelpMessage()) {
      return STATUS_EXIT_WITHOUT_ERROR;
    }
 else {
      return STATUS_EXIT_WITH_ERRORS;
    }
  }
  ;
  while (nextArg < maxArg) {
    String option=args[nextArg];
    if (option.equals("String_Node_Str")) {
      if (OutputHelpMessage()) {
        return STATUS_EXIT_WITHOUT_ERROR;
      }
 else {
        return STATUS_EXIT_WITH_ERRORS;
      }
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.WriteASTFlag=true;
      if (CheckForConflictingSpecOptions()) {
        return STATUS_EXIT_WITH_ERRORS;
      }
      ;
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.SpecOption=true;
      if (CheckForConflictingSpecOptions()) {
        return STATUS_EXIT_WITH_ERRORS;
      }
      ;
      nextArg=nextArg + 1;
      if (nextArg == maxArg) {
        return CommandLineError("String_Node_Str");
      }
      ;
      PcalParams.SpecFile=args[nextArg];
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.MyspecOption=true;
      if (CheckForConflictingSpecOptions()) {
        return STATUS_EXIT_WITH_ERRORS;
      }
      ;
      nextArg=nextArg + 1;
      if (nextArg == maxArg) {
        return CommandLineError("String_Node_Str");
      }
      ;
      PcalParams.SpecFile=args[nextArg];
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.Spec2Option=true;
      if (CheckForConflictingSpecOptions()) {
        return STATUS_EXIT_WITH_ERRORS;
      }
      ;
      nextArg=nextArg + 1;
      if (nextArg == maxArg) {
        return CommandLineError("String_Node_Str");
      }
      ;
      PcalParams.SpecFile=args[nextArg];
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.Myspec2Option=true;
      if (CheckForConflictingSpecOptions()) {
        return STATUS_EXIT_WITH_ERRORS;
      }
      ;
      nextArg=nextArg + 1;
      if (nextArg == maxArg) {
        return CommandLineError("String_Node_Str");
      }
      ;
      PcalParams.SpecFile=args[nextArg];
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.Debug=true;
    }
 else     if (option.equals("String_Node_Str")) {
      System.setProperty("String_Node_Str","String_Node_Str");
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.CheckTermination=true;
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.Nocfg=true;
    }
 else     if (option.equals("String_Node_Str")) {
      if (!PcalParams.FairnessOption.equals("String_Node_Str")) {
        return CommandLineError("String_Node_Str" + "String_Node_Str");
      }
      ;
      PcalParams.FairnessOption="String_Node_Str";
    }
 else     if (option.equals("String_Node_Str")) {
      if (!PcalParams.FairnessOption.equals("String_Node_Str")) {
        return CommandLineError("String_Node_Str" + "String_Node_Str");
      }
      ;
      PcalParams.FairnessOption="String_Node_Str";
    }
 else     if (option.equals("String_Node_Str")) {
      if (!PcalParams.FairnessOption.equals("String_Node_Str")) {
        return CommandLineError("String_Node_Str" + "String_Node_Str");
      }
      ;
      PcalParams.FairnessOption="String_Node_Str";
    }
 else     if (option.equals("String_Node_Str")) {
      if (!PcalParams.FairnessOption.equals("String_Node_Str")) {
        return CommandLineError("String_Node_Str" + "String_Node_Str");
      }
      ;
      PcalParams.FairnessOption="String_Node_Str";
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.LabelFlag=true;
    }
 else     if (option.equals("String_Node_Str")) {
      PcalParams.ReportLabelsFlag=true;
      PcalParams.LabelFlag=true;
    }
 else     if (option.equals("String_Node_Str")) {
      nextArg=nextArg + 1;
      if (nextArg == maxArg) {
        return CommandLineError("String_Node_Str");
      }
      ;
      PcalParams.LabelRoot=args[nextArg];
    }
 else {
      return CommandLineError("String_Node_Str" + option);
    }
    ;
    nextArg=nextArg + 1;
  }
  if (nextArg > maxArg) {
    return CommandLineError("String_Node_Str");
  }
  ;
  int dotIndex=args[maxArg].lastIndexOf("String_Node_Str");
  if (dotIndex == -1) {
    PcalParams.TLAInputFile=args[maxArg];
  }
 else   if (args[maxArg].substring(dotIndex).equals("String_Node_Str")) {
    PcalParams.TLAInputFile=args[maxArg].substring(0,dotIndex);
  }
 else {
    CommandLineError("String_Node_Str");
  }
  File file=new File(PcalParams.TLAInputFile + "String_Node_Str");
  if (file.exists()) {
  }
 else {
    return CommandLineError("String_Node_Str");
  }
  return STATUS_OK;
}