Program: 93969
Project: 93969
Buggy source:
public static String forumCache(String cache,String player,int userid,String nummember,String activemembers,String newusername,String newuserid,String extrausername,String lastvalue){
  StringTokenizer st=new StringTokenizer(cache,"String_Node_Str");
  int i=0;
  List<String> array=new ArrayList<String>();
  while (st.hasMoreTokens()) {
    array.add(st.nextToken() + "String_Node_Str");
  }
  StringBuffer newcache=new StringBuffer();
  while (array.size() > i) {
    if (array.get(i).equals("String_Node_Str" + nummember + "String_Node_Str") && nummember != null) {
      String temp=array.get(i + 2);
      temp=removeChar(temp,'"');
      temp=removeChar(temp,':');
      temp=removeChar(temp,'s');
      temp=removeChar(temp,';');
      temp=temp.trim();
      int tempnum=Integer.parseInt(temp) + 1;
      String templength="String_Node_Str" + tempnum;
      if (lastvalue.equalsIgnoreCase(extrausername)) {
        temp="String_Node_Str" + tempnum + "String_Node_Str"+ "String_Node_Str";
      }
 else {
        temp="String_Node_Str" + tempnum + "String_Node_Str"+ "String_Node_Str";
      }
      array.set(i + 1,templength.length() + "String_Node_Str");
      array.set(i + 2,temp);
    }
 else     if (array.get(i).equals("String_Node_Str" + newusername + "String_Node_Str") && newusername != null) {
      array.set(i + 1,player.length() + "String_Node_Str");
      if (lastvalue.equalsIgnoreCase(newusername)) {
        array.set(i + 2,"String_Node_Str" + player + "String_Node_Str"+ "String_Node_Str");
      }
 else {
        array.set(i + 2,"String_Node_Str" + player + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
      }
    }
 else     if (array.get(i).equals("String_Node_Str" + extrausername + "String_Node_Str") && extrausername != null) {
      array.set(i + 1,player.length() + "String_Node_Str");
      if (lastvalue.equalsIgnoreCase(extrausername)) {
        array.set(i + 2,"String_Node_Str" + player + "String_Node_Str"+ "String_Node_Str");
      }
 else {
        array.set(i + 2,"String_Node_Str" + player + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
      }
    }
 else     if (array.get(i).equals("String_Node_Str" + activemembers + "String_Node_Str") && activemembers != null) {
      String temp=array.get(i + 2);
      temp=removeChar(temp,'"');
      temp=removeChar(temp,':');
      temp=removeChar(temp,'s');
      temp=removeChar(temp,';');
      temp=temp.trim();
      int tempnum=Integer.parseInt(temp) + 1;
      String templength="String_Node_Str" + tempnum;
      if (lastvalue.equalsIgnoreCase(extrausername)) {
        temp="String_Node_Str" + tempnum + "String_Node_Str"+ "String_Node_Str";
      }
 else {
        temp="String_Node_Str" + tempnum + "String_Node_Str"+ "String_Node_Str";
      }
      array.set(i + 1,templength.length() + "String_Node_Str");
      array.set(i + 2,temp);
    }
 else     if (array.get(i).equals("String_Node_Str" + newuserid + "String_Node_Str") && newuserid != null) {
      String dupe="String_Node_Str" + userid;
      array.set(i + 1,dupe.length() + "String_Node_Str");
      if (lastvalue.equalsIgnoreCase(newuserid)) {
        array.set(i + 2,"String_Node_Str" + userid + "String_Node_Str"+ "String_Node_Str");
      }
 else {
        array.set(i + 2,"String_Node_Str" + userid + "String_Node_Str"+ "String_Node_Str");
      }
    }
    newcache.append(array.get(i));
    i++;
  }
  return newcache.toString();
}

Fixed version (ground truth):
public static String forumCache(String cache,String player,int userid,String nummember,String activemembers,String newusername,String newuserid,String extrausername,String lastvalue){
  StringTokenizer st=new StringTokenizer(cache,"String_Node_Str");
  int i=0;
  List<String> array=new ArrayList<String>();
  while (st.hasMoreTokens()) {
    array.add(st.nextToken() + "String_Node_Str");
  }
  StringBuffer newcache=new StringBuffer();
  while (array.size() > i) {
    if (array.get(i).equals("String_Node_Str" + nummember + "String_Node_Str") && nummember != null) {
      String temp=array.get(i + 1);
      temp=removeChar(temp,'"');
      temp=removeChar(temp,':');
      temp=removeChar(temp,'s');
      temp=removeChar(temp,';');
      temp=temp.trim();
      int tempnum=Integer.parseInt(temp) + 1;
      if (lastvalue.equalsIgnoreCase(nummember)) {
        temp=tempnum + "String_Node_Str";
      }
 else {
        temp=tempnum + "String_Node_Str";
      }
      array.set(i + 1,temp);
    }
 else     if (array.get(i).equals("String_Node_Str" + newusername + "String_Node_Str") && newusername != null) {
      array.set(i + 1,player.length() + "String_Node_Str");
      if (lastvalue.equalsIgnoreCase(newusername)) {
        array.set(i + 2,"String_Node_Str" + player + "String_Node_Str"+ "String_Node_Str");
      }
 else {
        array.set(i + 2,"String_Node_Str" + player + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
      }
    }
 else     if (array.get(i).equals("String_Node_Str" + extrausername + "String_Node_Str") && extrausername != null) {
      array.set(i + 1,player.length() + "String_Node_Str");
      if (lastvalue.equalsIgnoreCase(extrausername)) {
        array.set(i + 2,"String_Node_Str" + player + "String_Node_Str"+ "String_Node_Str");
      }
 else {
        array.set(i + 2,"String_Node_Str" + player + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
      }
    }
 else     if (array.get(i).equals("String_Node_Str" + activemembers + "String_Node_Str") && activemembers != null) {
      String temp=array.get(i + 2);
      temp=removeChar(temp,'"');
      temp=removeChar(temp,':');
      temp=removeChar(temp,'s');
      temp=removeChar(temp,';');
      temp=temp.trim();
      int tempnum=Integer.parseInt(temp) + 1;
      String templength="String_Node_Str" + tempnum;
      if (lastvalue.equalsIgnoreCase(activemembers)) {
        temp="String_Node_Str" + tempnum + "String_Node_Str"+ "String_Node_Str";
      }
 else {
        temp="String_Node_Str" + tempnum + "String_Node_Str"+ "String_Node_Str";
      }
      array.set(i + 1,templength.length() + "String_Node_Str");
      array.set(i + 2,temp);
    }
 else     if (array.get(i).equals("String_Node_Str" + newuserid + "String_Node_Str") && newuserid != null) {
      String dupe="String_Node_Str" + userid;
      array.set(i + 1,dupe.length() + "String_Node_Str");
      if (lastvalue.equalsIgnoreCase(newuserid)) {
        array.set(i + 2,"String_Node_Str" + userid + "String_Node_Str"+ "String_Node_Str");
      }
 else {
        array.set(i + 2,"String_Node_Str" + userid + "String_Node_Str"+ "String_Node_Str");
      }
    }
    newcache.append(array.get(i));
    i++;
  }
  return newcache.toString();
}