Program: 186928
Project: 186928
Buggy source:
/** 
 * Load the config file, parse and check options, and if handleApInfoInit has been set, also initialize AppInfo.
 * @param args cmdline arguments to parse
 * @param configFile filename of an optional user configuration file, will be tried to be loaded beforearguments are parsed.
 * @return arguments not consumed.
 */
public String[] setupConfig(String[] args,String configFile){
  File file=findConfigFile(configFile);
  if (file != null && file.exists()) {
    try {
      InputStream is=new BufferedInputStream(new FileInputStream(file));
      config.addProperties(is);
    }
 catch (    FileNotFoundException e) {
      System.out.println("String_Node_Str" + configFile + "String_Node_Str"+ e.getMessage());
    }
catch (    IOException e) {
      System.out.println("String_Node_Str" + file + "String_Node_Str"+ e.getMessage());
      System.exit(3);
    }
  }
  String[] rest=null;
  try {
    rest=config.parseArguments(args);
    config.checkOptions();
  }
 catch (  Config.BadConfigurationException e) {
    System.out.println(e.getMessage());
    if (config.getOptions().containsOption(Config.SHOW_HELP)) {
      System.out.println("String_Node_Str");
    }
    System.exit(2);
  }
  if (config.getOption(Config.SHOW_HELP) && prgmName != null) {
    printUsage();
    System.exit(0);
  }
  if (config.getOption(Config.SHOW_VERSION) && versionInfo != null) {
    printVersion();
    System.exit(0);
  }
  if (config.getOption(Config.SHOW_CONFIG)) {
    config.printConfiguration(config.getDefaultIndent());
    System.exit(0);
  }
  try {
    for (    Module module : modules.values()) {
      module.onSetupConfig(this);
    }
  }
 catch (  Config.BadConfigurationException e) {
    System.out.println(e.getMessage());
    if (config.getOptions().containsOption(Config.SHOW_HELP)) {
      System.out.println("String_Node_Str");
    }
    System.exit(2);
  }
  return rest;
}

Fixed version (ground truth):
/** 
 * Load the config file, parse and check options, and if handleApInfoInit has been set, also initialize AppInfo.
 * @param args cmdline arguments to parse
 * @return arguments not consumed.
 */
public String[] setupConfig(String[] args){
  if (configFilename != null) {
    File file=findConfigFile(configFilename);
    if (file != null && file.exists()) {
      try {
        InputStream is=new BufferedInputStream(new FileInputStream(file));
        config.addProperties(is);
      }
 catch (      FileNotFoundException e) {
        System.err.println("String_Node_Str" + configFilename + "String_Node_Str"+ e.getMessage());
      }
catch (      IOException e) {
        System.err.println("String_Node_Str" + file + "String_Node_Str"+ e.getMessage());
        System.exit(3);
      }
    }
  }
  String[] rest=null;
  try {
    rest=config.parseArguments(args);
    config.checkOptions();
  }
 catch (  Config.BadConfigurationException e) {
    System.err.println(e.getMessage());
    if (config.getOptions().containsOption(Config.SHOW_HELP)) {
      System.err.println("String_Node_Str");
    }
    System.exit(2);
  }
  if (config.getOption(Config.SHOW_HELP)) {
    printUsage();
    System.exit(0);
  }
  if (config.getOption(Config.SHOW_VERSION)) {
    printVersion();
    System.exit(0);
  }
  if (config.getOption(Config.SHOW_CONFIG)) {
    config.printConfiguration(config.getDefaultIndent());
    System.exit(0);
  }
  try {
    for (    JopTool jopTool : tools.values()) {
      jopTool.onSetupConfig(this);
    }
  }
 catch (  Config.BadConfigurationException e) {
    System.err.println(e.getMessage());
    if (config.getOptions().containsOption(Config.SHOW_HELP)) {
      System.err.println("String_Node_Str");
    }
    System.exit(2);
  }
  return rest;
}