Program: 69692
Project: 69692
Buggy source:
protected void appendConfigToTinyJSArray_4(StringOutput out){
  Set<String> plugins4=new HashSet<String>(plugins);
  plugins4.remove("String_Node_Str");
  plugins4.remove("String_Node_Str");
  plugins4.remove("String_Node_Str");
  plugins4.remove("String_Node_Str");
  plugins4.remove("String_Node_Str");
  if (plugins4.contains("String_Node_Str")) {
    plugins4.remove("String_Node_Str");
    plugins4.add("String_Node_Str");
  }
  if (plugins4.remove("String_Node_Str")) {
    plugins4.add("String_Node_Str");
  }
  if (plugins4.remove("String_Node_Str")) {
    plugins4.add("String_Node_Str");
  }
  if (plugins4.remove("String_Node_Str")) {
    plugins4.add("String_Node_Str");
  }
  if (plugins4.remove("String_Node_Str")) {
    plugins4.add("String_Node_Str");
  }
  if (plugins4.remove("String_Node_Str")) {
    plugins4.add("String_Node_Str");
  }
  plugins4.add("String_Node_Str");
  plugins4.add("String_Node_Str");
  plugins4.add("String_Node_Str");
  if (theme_advanced_buttons3.contains(CODE_BUTTON) || quotedConfigValues.containsKey(THEME_ADVANCED_BUTTONS3_ADD)) {
    plugins4.add("String_Node_Str");
  }
  if (quotedConfigValues.containsKey("String_Node_Str")) {
    plugins4.add("String_Node_Str");
  }
  if (theme_advanced_buttons1.contains("String_Node_Str") || theme_advanced_buttons1.contains("String_Node_Str")) {
    plugins4.add("String_Node_Str");
  }
  plugins4.add("String_Node_Str");
  List<String> buttons1=new ArrayList<String>(theme_advanced_buttons1);
  if (buttons1.contains("String_Node_Str"))   buttons1.set(buttons1.indexOf("String_Node_Str"),"String_Node_Str");
  if (buttons1.contains("String_Node_Str"))   buttons1.set(buttons1.indexOf("String_Node_Str"),"String_Node_Str");
  if (buttons1.contains("String_Node_Str"))   buttons1.set(buttons1.indexOf("String_Node_Str"),"String_Node_Str");
  if (buttons1.contains("String_Node_Str"))   buttons1.set(buttons1.indexOf("String_Node_Str"),"String_Node_Str");
  if (buttons1.contains(JUSTIFY_BUTTONGROUP)) {
    int index=buttons1.indexOf(JUSTIFY_BUTTONGROUP);
    buttons1.remove(index);
    buttons1.add(index,"String_Node_Str");
    buttons1.add(index,"String_Node_Str");
    buttons1.add(index,"String_Node_Str");
    buttons1.add(index,"String_Node_Str");
  }
  List<String> buttons2=new ArrayList<String>(theme_advanced_buttons2);
  if (buttons2.contains(PASTE_PLUGIN_BUTTONGROUP)) {
    buttons2.set(buttons2.indexOf(PASTE_PLUGIN_BUTTONGROUP),"String_Node_Str");
  }
  List<String> buttons3=new ArrayList<String>(theme_advanced_buttons3);
  if (buttons3.contains("String_Node_Str")) {
    buttons3.set(buttons3.indexOf("String_Node_Str"),"String_Node_Str");
  }
  buttons3.remove("String_Node_Str");
  buttons3.remove("String_Node_Str");
  if (quotedConfigValues.containsKey(THEME_ADVANCED_BUTTONS3_ADD) && quotedConfigValues.get(THEME_ADVANCED_BUTTONS3_ADD).contains("String_Node_Str")) {
    buttons3.add("String_Node_Str");
  }
  Map<String,String> copyValues=new HashMap<String,String>(quotedConfigValues);
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  String tabfocus=copyValues.remove("String_Node_Str");
  if (tabfocus != null) {
    copyValues.put("String_Node_Str",tabfocus);
  }
  Map<String,String> copyNonValues=new HashMap<String,String>(nonQuotedConfigValues);
  copyNonValues.remove("String_Node_Str");
  copyNonValues.remove("String_Node_Str");
  String converter=copyNonValues.remove(URLCONVERTER_CALLBACK);
  if (converter != null) {
    copyNonValues.put("String_Node_Str",converter);
  }
  String dateFormat=copyValues.remove(INSERTDATETIME_DATEFORMAT);
  if (dateFormat != null) {
    copyValues.put("String_Node_Str",dateFormat);
    copyNonValues.put("String_Node_Str","String_Node_Str" + dateFormat + "String_Node_Str");
  }
  String contentCss=copyValues.remove("String_Node_Str");
  if (contentCss != null) {
    copyNonValues.put("String_Node_Str","String_Node_Str");
    copyValues.put("String_Node_Str",Settings.createServerURI() + contentCss);
  }
  StringOutput sb=new StringOutput();
  appendValuesFromList(sb,PLUGINS,plugins4);
  sb.append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
  if (buttons1.size() == 0) {
    sb.append("String_Node_Str").append("String_Node_Str");
  }
 else {
    listToString(sb,"String_Node_Str",buttons1);
    sb.append("String_Node_Str");
  }
  if (buttons2.size() == 0) {
    sb.append("String_Node_Str").append("String_Node_Str");
  }
 else {
    listToString(sb,"String_Node_Str",buttons2);
    sb.append("String_Node_Str");
  }
  if (buttons3.size() == 0) {
    sb.append("String_Node_Str").append("String_Node_Str");
  }
 else {
    listToString(sb,"String_Node_Str",buttons3);
    sb.append("String_Node_Str");
  }
  for (  Map.Entry<String,String> entry : copyValues.entrySet()) {
    sb.append(entry.getKey()).append("String_Node_Str").append(entry.getValue()).append("String_Node_Str");
  }
  for (  Map.Entry<String,String> entry : copyNonValues.entrySet()) {
    sb.append(entry.getKey()).append("String_Node_Str").append(entry.getValue()).append("String_Node_Str");
  }
  StringOutput tinyMenuSb=new StringOutput();
  tinyMenuSb.append("String_Node_Str").append(tinyConfig.getPlugins()).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append(tinyConfig.hasMenu()).append("String_Node_Str");
  if (tinyConfig.getTool1() != null) {
    tinyMenuSb.append("String_Node_Str").append(tinyConfig.getTool1()).append("String_Node_Str");
    if (tinyConfig.getTool2() != null) {
      tinyMenuSb.append("String_Node_Str").append(tinyConfig.getTool2()).append("String_Node_Str");
    }
  }
  if (tinyConfig.hasMenu()) {
    tinyMenuSb.append("String_Node_Str");
    boolean first=true;
    for (    String menuItem : tinyConfig.getMenu()) {
      if (!first)       tinyMenuSb.append("String_Node_Str");
      if (first)       first=false;
      tinyMenuSb.append(menuItem);
    }
    tinyMenuSb.append("String_Node_Str");
  }
  for (  Map.Entry<String,String> entry : copyValues.entrySet()) {
    tinyMenuSb.append(entry.getKey()).append("String_Node_Str").append(entry.getValue()).append("String_Node_Str");
  }
  for (  Map.Entry<String,String> entry : copyNonValues.entrySet()) {
    tinyMenuSb.append(entry.getKey()).append("String_Node_Str").append(entry.getValue()).append("String_Node_Str");
  }
  out.append(tinyMenuSb);
}

Fixed version (ground truth):
protected void appendConfigToTinyJSArray_4(StringOutput out){
  Set<String> plugins4=new HashSet<String>(plugins);
  plugins4.remove("String_Node_Str");
  plugins4.remove("String_Node_Str");
  plugins4.remove("String_Node_Str");
  plugins4.remove("String_Node_Str");
  plugins4.remove("String_Node_Str");
  if (plugins4.contains("String_Node_Str")) {
    plugins4.remove("String_Node_Str");
    plugins4.add("String_Node_Str");
  }
  if (plugins4.remove("String_Node_Str")) {
    plugins4.add("String_Node_Str");
  }
  if (plugins4.remove("String_Node_Str")) {
    plugins4.add("String_Node_Str");
  }
  if (plugins4.remove("String_Node_Str")) {
    plugins4.add("String_Node_Str");
  }
  if (plugins4.remove("String_Node_Str")) {
    plugins4.add("String_Node_Str");
  }
  if (plugins4.remove("String_Node_Str")) {
    plugins4.add("String_Node_Str");
  }
  plugins4.add("String_Node_Str");
  plugins4.add("String_Node_Str");
  plugins4.add("String_Node_Str");
  if (theme_advanced_buttons3.contains(CODE_BUTTON) || quotedConfigValues.containsKey(THEME_ADVANCED_BUTTONS3_ADD)) {
    plugins4.add("String_Node_Str");
  }
  if (quotedConfigValues.containsKey("String_Node_Str")) {
    plugins4.add("String_Node_Str");
  }
  if (theme_advanced_buttons1.contains("String_Node_Str") || theme_advanced_buttons1.contains("String_Node_Str")) {
    plugins4.add("String_Node_Str");
  }
  plugins4.add("String_Node_Str");
  List<String> buttons1=new ArrayList<String>(theme_advanced_buttons1);
  if (buttons1.contains("String_Node_Str"))   buttons1.set(buttons1.indexOf("String_Node_Str"),"String_Node_Str");
  if (buttons1.contains("String_Node_Str"))   buttons1.set(buttons1.indexOf("String_Node_Str"),"String_Node_Str");
  if (buttons1.contains("String_Node_Str"))   buttons1.set(buttons1.indexOf("String_Node_Str"),"String_Node_Str");
  if (buttons1.contains("String_Node_Str"))   buttons1.set(buttons1.indexOf("String_Node_Str"),"String_Node_Str");
  if (buttons1.contains(JUSTIFY_BUTTONGROUP)) {
    int index=buttons1.indexOf(JUSTIFY_BUTTONGROUP);
    buttons1.remove(index);
    buttons1.add(index,"String_Node_Str");
    buttons1.add(index,"String_Node_Str");
    buttons1.add(index,"String_Node_Str");
    buttons1.add(index,"String_Node_Str");
  }
  List<String> buttons2=new ArrayList<String>(theme_advanced_buttons2);
  if (buttons2.contains(PASTE_PLUGIN_BUTTONGROUP)) {
    buttons2.set(buttons2.indexOf(PASTE_PLUGIN_BUTTONGROUP),"String_Node_Str");
  }
  List<String> buttons3=new ArrayList<String>(theme_advanced_buttons3);
  if (buttons3.contains("String_Node_Str")) {
    buttons3.set(buttons3.indexOf("String_Node_Str"),"String_Node_Str");
  }
  buttons3.remove("String_Node_Str");
  buttons3.remove("String_Node_Str");
  if (quotedConfigValues.containsKey(THEME_ADVANCED_BUTTONS3_ADD) && quotedConfigValues.get(THEME_ADVANCED_BUTTONS3_ADD).contains("String_Node_Str")) {
    buttons3.add("String_Node_Str");
  }
  Map<String,String> copyValues=new HashMap<String,String>(quotedConfigValues);
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  copyValues.remove("String_Node_Str");
  String tabfocus=copyValues.remove("String_Node_Str");
  if (tabfocus != null) {
    copyValues.put("String_Node_Str",tabfocus);
  }
  Map<String,String> copyNonValues=new HashMap<String,String>(nonQuotedConfigValues);
  copyNonValues.remove("String_Node_Str");
  copyNonValues.remove("String_Node_Str");
  String converter=copyNonValues.remove(URLCONVERTER_CALLBACK);
  if (converter != null) {
    copyNonValues.put("String_Node_Str",converter);
  }
  String dateFormat=copyValues.remove(INSERTDATETIME_DATEFORMAT);
  if (dateFormat != null) {
    copyValues.put("String_Node_Str",dateFormat);
    copyNonValues.put("String_Node_Str","String_Node_Str" + dateFormat + "String_Node_Str");
  }
  String contentCss=copyValues.remove("String_Node_Str");
  if (contentCss != null) {
    copyNonValues.put("String_Node_Str","String_Node_Str");
    copyValues.put("String_Node_Str",Settings.createServerURI() + contentCss);
  }
  StringOutput tinyMenuSb=new StringOutput();
  tinyMenuSb.append("String_Node_Str").append(tinyConfig.getPlugins()).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append(tinyConfig.hasMenu()).append("String_Node_Str");
  if (tinyConfig.getTool1() != null) {
    tinyMenuSb.append("String_Node_Str").append(tinyConfig.getTool1()).append("String_Node_Str");
    if (tinyConfig.getTool2() != null) {
      tinyMenuSb.append("String_Node_Str").append(tinyConfig.getTool2()).append("String_Node_Str");
    }
  }
  if (tinyConfig.hasMenu()) {
    tinyMenuSb.append("String_Node_Str");
    boolean first=true;
    for (    String menuItem : tinyConfig.getMenu()) {
      if (!first)       tinyMenuSb.append("String_Node_Str");
      if (first)       first=false;
      tinyMenuSb.append(menuItem);
    }
    tinyMenuSb.append("String_Node_Str");
  }
  for (  Map.Entry<String,String> entry : copyValues.entrySet()) {
    tinyMenuSb.append(entry.getKey()).append("String_Node_Str").append(entry.getValue()).append("String_Node_Str");
  }
  for (  Map.Entry<String,String> entry : copyNonValues.entrySet()) {
    tinyMenuSb.append(entry.getKey()).append("String_Node_Str").append(entry.getValue()).append("String_Node_Str");
  }
  out.append(tinyMenuSb);
}