Program: 3110
Project: 3110
Buggy source:
public void load(File PLpath,String fileName) throws IOException {
  int i=0;
  PLfile=new File(PLpath,fileName);
  if (!PLfile.getParentFile().exists()) {
    logger.info("String_Node_Str" + PLpath.getAbsolutePath());
    PLpath.mkdirs();
  }
  if (!PLfile.exists()) {
    logger.info("String_Node_Str" + PLfile.getAbsolutePath());
    PLfile.createNewFile();
  }
  logger.info("String_Node_Str");
  PriceList=new Configuration(PLfile);
  PriceList.load();
  BuyMap.clear();
  SellMap.clear();
  NameMap.clear();
  try {
    keys.addAll(PriceList.getKeys("String_Node_Str"));
  }
 catch (  Exception e0) {
    logger.info("String_Node_Str");
    return;
  }
  while (i < keys.size()) {
    double buy=-1;
    double sell=-1;
    String name="String_Node_Str";
    String[] split=keys.get(i).split("String_Node_Str");
    if (split.length != 0) {
      int id=0;
      int sub=0;
      try {
        id=Integer.parseInt(split[split.length - 4]);
      }
 catch (      Exception e1) {
        id=0;
      }
      try {
        sub=Integer.parseInt(split[split.length - 1]);
      }
 catch (      Exception e1) {
        sub=0;
      }
      if (keys.contains("String_Node_Str" + String.valueOf(id) + "String_Node_Str"+ String.valueOf(sub))) {
        buy=PriceList.getDouble("String_Node_Str" + String.valueOf(id) + "String_Node_Str"+ String.valueOf(sub)+ "String_Node_Str",-1);
        sell=PriceList.getInt("String_Node_Str" + String.valueOf(id) + "String_Node_Str"+ String.valueOf(sub)+ "String_Node_Str",-1);
        name=PriceList.getString("String_Node_Str" + String.valueOf(id) + "String_Node_Str"+ String.valueOf(sub)+ "String_Node_Str","String_Node_Str");
      }
 else       if (keys.contains("String_Node_Str" + String.valueOf(id))) {
        buy=PriceList.getDouble("String_Node_Str" + String.valueOf(id) + "String_Node_Str",-1);
        sell=PriceList.getInt("String_Node_Str" + String.valueOf(id) + "String_Node_Str",-1);
        name=PriceList.getString("String_Node_Str" + String.valueOf(id) + "String_Node_Str","String_Node_Str");
      }
      if ((buy != -1) && (sell != -1)) {
        double d=id + (sub * .01);
        BuyMap.put(d,buy);
        SellMap.put(d,sell);
        NameMap.put(d,name);
      }
    }
    i++;
  }
  ItemMap.clear();
  ItemMap.addAll(NameMap.keySet());
  logger.info("String_Node_Str");
}

Fixed version (ground truth):
public void load(File PLpath,String fileName) throws IOException {
  int i=0;
  PLfile=new File(PLpath,fileName);
  if (!PLfile.getParentFile().exists()) {
    logger.info("String_Node_Str" + PLpath.getAbsolutePath());
    PLpath.mkdirs();
  }
  if (!PLfile.exists()) {
    logger.info("String_Node_Str" + PLfile.getAbsolutePath());
    PLfile.createNewFile();
  }
  logger.info("String_Node_Str");
  PriceList=new Configuration(PLfile);
  PriceList.load();
  BuyMap.clear();
  SellMap.clear();
  NameMap.clear();
  keys.clear();
  try {
    keys.addAll(PriceList.getKeys("String_Node_Str"));
  }
 catch (  Exception e0) {
    logger.info("String_Node_Str");
    return;
  }
  while (i < keys.size()) {
    double buy=-1.003;
    double sell=-1.003;
    String name="String_Node_Str";
    String[] split=keys.get(i).split("String_Node_Str");
    if (split.length != 0) {
      int id=0;
      int sub=0;
      if (split.length == 8) {
        try {
          id=Integer.parseInt(split[split.length - 4]);
        }
 catch (        Exception e1) {
          id=0;
        }
        try {
          sub=Integer.parseInt(split[split.length - 1]);
        }
 catch (        Exception e1) {
          sub=0;
        }
      }
 else {
        try {
          id=Integer.parseInt(split[split.length - 1]);
        }
 catch (        Exception e1) {
          id=0;
        }
      }
      if (keys.contains("String_Node_Str" + String.valueOf(id) + "String_Node_Str"+ String.valueOf(sub))) {
        buy=PriceList.getDouble("String_Node_Str" + String.valueOf(id) + "String_Node_Str"+ String.valueOf(sub)+ "String_Node_Str",-1);
        sell=PriceList.getDouble("String_Node_Str" + String.valueOf(id) + "String_Node_Str"+ String.valueOf(sub)+ "String_Node_Str",-1);
        name=PriceList.getString("String_Node_Str" + String.valueOf(id) + "String_Node_Str"+ String.valueOf(sub)+ "String_Node_Str","String_Node_Str");
      }
 else       if (keys.contains("String_Node_Str" + String.valueOf(id))) {
        buy=PriceList.getDouble("String_Node_Str" + String.valueOf(id) + "String_Node_Str",-1);
        sell=PriceList.getDouble("String_Node_Str" + String.valueOf(id) + "String_Node_Str",-1);
        name=PriceList.getString("String_Node_Str" + String.valueOf(id) + "String_Node_Str","String_Node_Str");
      }
      if ((buy != -1.003) && (sell != -1.003)) {
        double d=id + (sub * .01);
        BuyMap.put(d,buy);
        SellMap.put(d,sell);
        NameMap.put(d,name);
      }
    }
    i++;
  }
  ItemMap.clear();
  ItemMap.addAll(NameMap.keySet());
  logger.info("String_Node_Str");
}