Program: 51373
Project: 51373
Buggy source:
void populate(String propFile){
  String localizedPropFileBase="String_Node_Str";
  String[] tokens=propFile.split("String_Node_Str");
  for (int i=0; i < tokens.length - 1; i++) {
    localizedPropFileBase=localizedPropFileBase + ((localizedPropFileBase.length() == 0) ? "String_Node_Str" : "String_Node_Str") + tokens[i];
  }
  String[] localePropFilename=new String[localeType];
  String[] localeTokens=locale.split("String_Node_Str");
  int index=localeType;
  for (int i=0; i < localeType; i++) {
    String catName="String_Node_Str";
    for (int j=0; j <= i - 1; j++) {
      catName+="String_Node_Str" + localeTokens[j];
    }
    localePropFilename[--index]=localizedPropFileBase + catName + "String_Node_Str"+ tokens[tokens.length - 1];
  }
  boolean fileExists=false;
  File file=null;
  for (int i=0; i < localeType && !fileExists; i++) {
    file=new File(localePropFilename[i]);
    if (LOGGER.isDebugEnabled()) {
      LOGGER.debug("String_Node_Str" + file.getAbsolutePath() + "String_Node_Str"+ file.exists());
    }
    if (!file.exists()) {
      LOGGER.warn("String_Node_Str" + file.getAbsolutePath() + "String_Node_Str");
    }
    fileExists=file.exists();
  }
  if (fileExists) {
    try {
      URL url=Util.toURL(file);
      i8n=new PropertyResourceBundle(url.openStream());
      LOGGER.info("String_Node_Str" + file.getAbsolutePath() + "String_Node_Str");
    }
 catch (    MalformedURLException e) {
      LOGGER.error("String_Node_Str" + file.getAbsolutePath() + "String_Node_Str"+ e+ "String_Node_Str");
    }
catch (    java.io.IOException e) {
      LOGGER.error("String_Node_Str" + file.getAbsolutePath() + "String_Node_Str"+ e+ "String_Node_Str");
    }
  }
 else {
    LOGGER.warn("String_Node_Str" + locale + "String_Node_Str");
  }
}

Fixed version (ground truth):
void populate(String propFile){
  StringBuilder localizedPropFileBase=new StringBuilder();
  String[] tokens=propFile.split("String_Node_Str");
  for (int i=0; i < tokens.length - 1; i++) {
    if (localizedPropFileBase.length() > 0) {
      localizedPropFileBase.append("String_Node_Str");
    }
    localizedPropFileBase.append(tokens[i]);
  }
  String[] localePropFilename=new String[localeType];
  String[] localeTokens=locale.split("String_Node_Str");
  int index=localeType;
  for (int i=0; i < localeType; i++) {
    String catName="String_Node_Str";
    for (int j=0; j <= i - 1; j++) {
      catName+="String_Node_Str" + localeTokens[j];
    }
    localePropFilename[--index]=localizedPropFileBase + catName + "String_Node_Str"+ tokens[tokens.length - 1];
  }
  boolean fileExists=false;
  File file=null;
  for (int i=0; i < localeType && !fileExists; i++) {
    file=new File(localePropFilename[i]);
    if (LOGGER.isDebugEnabled()) {
      LOGGER.debug("String_Node_Str" + file.getAbsolutePath() + "String_Node_Str"+ file.exists());
    }
    if (!file.exists()) {
      LOGGER.warn("String_Node_Str" + file.getAbsolutePath() + "String_Node_Str");
    }
    fileExists=file.exists();
  }
  if (fileExists) {
    try {
      URL url=Util.toURL(file);
      i8n=new PropertyResourceBundle(url.openStream());
      LOGGER.info("String_Node_Str" + file.getAbsolutePath() + "String_Node_Str");
    }
 catch (    MalformedURLException e) {
      LOGGER.error("String_Node_Str" + file.getAbsolutePath() + "String_Node_Str"+ e+ "String_Node_Str");
    }
catch (    java.io.IOException e) {
      LOGGER.error("String_Node_Str" + file.getAbsolutePath() + "String_Node_Str"+ e+ "String_Node_Str");
    }
  }
 else {
    LOGGER.warn("String_Node_Str" + locale + "String_Node_Str");
  }
}