Program: 143716
Project: 143716
Buggy source:
public String getRowSelectionScript(){
  if (currentData == null)   return null;
  List<Integer> indexToUpdate;
  if (!dataRendererOnRenderWrapper.getRenderEventExecutor().hasRenderCallback() && (bgColorScript != null || getRowSelectedStyle() != null) && (indexToUpdate=getIndexToUpdate()) != null) {
    int firstRow=table.getCurrentPage() * table.getRowsPerPage();
    int lastRow=firstRow + table.getViewSize() - 1;
    int[] newSelectedIndexes=getSelectedIndexes();
    AppendingStringBuffer sab=new AppendingStringBuffer();
    for (    int rowIdx : indexToUpdate) {
      if (rowIdx >= firstRow && rowIdx <= lastRow) {
        ListItem<IRecordInternal> selectedListItem=(ListItem<IRecordInternal>)table.get(Integer.toString(rowIdx));
        if (selectedListItem != null) {
          String selectedId=selectedListItem.getMarkupId();
          boolean isSelected=Arrays.binarySearch(newSelectedIndexes,rowIdx) >= 0;
          Object selectedColor=getListItemBgColor(selectedListItem,isSelected);
          Object selectedFgColor=getListItemFgColor(selectedListItem,isSelected);
          Object selectedFont=getListItemFont(selectedListItem,isSelected);
          selectedColor=(selectedColor == null ? "String_Node_Str" : selectedColor.toString());
          selectedFgColor=(selectedFgColor == null) ? "String_Node_Str" : selectedFgColor.toString();
          String fstyle="String_Node_Str", fweight="String_Node_Str", fsize="String_Node_Str", ffamily="String_Node_Str";
          if (selectedFont != null) {
            Pair<String,String> fontCSSProps[]=PersistHelper.createFontCSSProperties(selectedFont.toString());
            for (            Pair<String,String> fontCSSProp : fontCSSProps) {
              if (fontCSSProp != null) {
                String key=fontCSSProp.getLeft();
                String value=fontCSSProp.getRight();
                if (value == null)                 value="String_Node_Str";
                if ("String_Node_Str".equals(key))                 fstyle=value;
 else                 if ("String_Node_Str".equals(key))                 fweight=value;
 else                 if ("String_Node_Str".equals(key))                 fsize=value;
 else                 if ("String_Node_Str".equals(key))                 ffamily=value;
              }
            }
          }
          sab.append("String_Node_Str").append(selectedId).append("String_Node_Str").append(selectedColor).append("String_Node_Str").append(selectedFgColor).append("String_Node_Str").append(fstyle).append("String_Node_Str").append(fweight).append("String_Node_Str").append(fsize).append("String_Node_Str").append(ffamily).append("String_Node_Str");
        }
      }
    }
    String rowSelectionScript=sab.toString();
    if (rowSelectionScript.length() > 0)     return rowSelectionScript;
  }
  return null;
}

Fixed version (ground truth):
public String getRowSelectionScript(){
  if (currentData == null)   return null;
  List<Integer> indexToUpdate;
  if (!hasOnRender && (bgColorScript != null || getRowSelectedStyle() != null) && (indexToUpdate=getIndexToUpdate()) != null) {
    int firstRow=table.getCurrentPage() * table.getRowsPerPage();
    int lastRow=firstRow + table.getViewSize() - 1;
    int[] newSelectedIndexes=getSelectedIndexes();
    AppendingStringBuffer sab=new AppendingStringBuffer();
    for (    int rowIdx : indexToUpdate) {
      if (rowIdx >= firstRow && rowIdx <= lastRow) {
        ListItem<IRecordInternal> selectedListItem=(ListItem<IRecordInternal>)table.get(Integer.toString(rowIdx));
        if (selectedListItem != null) {
          String selectedId=selectedListItem.getMarkupId();
          boolean isSelected=Arrays.binarySearch(newSelectedIndexes,rowIdx) >= 0;
          Object selectedColor=getListItemBgColor(selectedListItem,isSelected);
          Object selectedFgColor=getListItemFgColor(selectedListItem,isSelected);
          Object selectedFont=getListItemFont(selectedListItem,isSelected);
          selectedColor=(selectedColor == null ? "String_Node_Str" : selectedColor.toString());
          selectedFgColor=(selectedFgColor == null) ? "String_Node_Str" : selectedFgColor.toString();
          String fstyle="String_Node_Str", fweight="String_Node_Str", fsize="String_Node_Str", ffamily="String_Node_Str";
          if (selectedFont != null) {
            Pair<String,String> fontCSSProps[]=PersistHelper.createFontCSSProperties(selectedFont.toString());
            for (            Pair<String,String> fontCSSProp : fontCSSProps) {
              if (fontCSSProp != null) {
                String key=fontCSSProp.getLeft();
                String value=fontCSSProp.getRight();
                if (value == null)                 value="String_Node_Str";
                if ("String_Node_Str".equals(key))                 fstyle=value;
 else                 if ("String_Node_Str".equals(key))                 fweight=value;
 else                 if ("String_Node_Str".equals(key))                 fsize=value;
 else                 if ("String_Node_Str".equals(key))                 ffamily=value;
              }
            }
          }
          sab.append("String_Node_Str").append(selectedId).append("String_Node_Str").append(selectedColor).append("String_Node_Str").append(selectedFgColor).append("String_Node_Str").append(fstyle).append("String_Node_Str").append(fweight).append("String_Node_Str").append(fsize).append("String_Node_Str").append(ffamily).append("String_Node_Str");
        }
      }
    }
    String rowSelectionScript=sab.toString();
    if (rowSelectionScript.length() > 0)     return rowSelectionScript;
  }
  return null;
}