Program: 69771
Project: 69771
Buggy source:
@Override public MediaResource handle(String relPath,HttpServletRequest request){
  String firstRowStr=request.getParameter("String_Node_Str");
  String maxRowStr=request.getParameter("String_Node_Str");
  String echo=request.getParameter("String_Node_Str");
  String sortCol=request.getParameter("String_Node_Str");
  String sortDir=request.getParameter("String_Node_Str");
  FlexiTableElementImpl ftE=ftC.getFlexiTableElement();
  URLBuilder ubu=getURLBuilder(request);
  int sortedColIndex=-1;
  if (StringHelper.containsNonWhitespace(sortCol)) {
    sortedColIndex=Integer.parseInt(sortCol);
    if (ftE.isMultiSelect()) {
      sortedColIndex--;
    }
  }
  if (StringHelper.isLong(firstRowStr) && StringHelper.isLong(maxRowStr)) {
    FlexiTableDataModel<?> dataModel=ftE.getTableDataModel();
    FlexiTableDataSource<?> dataSource=ftE.getTableDataSource();
    FlexiTableColumnModel columnsModel=dataModel.getTableColumnModel();
    SortKey orderBy=null;
    if (sortedColIndex >= 0 && sortedColIndex < columnsModel.getColumnCount()) {
      int count=0;
      for (int i=0; i < columnsModel.getColumnCount() && count <= sortedColIndex; i++) {
        FlexiColumnModel sortedColumn=columnsModel.getColumnModel(i);
        if (ftE.isColumnModelVisible(sortedColumn)) {
          if (count == sortedColIndex && StringHelper.containsNonWhitespace(sortedColumn.getSortKey())) {
            orderBy=new SortKey(sortedColumn.getSortKey(),"String_Node_Str".equals(sortDir));
            break;
          }
          count++;
        }
      }
    }
    int rows=ftE.getTableDataModel().getRowCount();
    String dispatchId=ftE.getComponent().getDispatchID();
    String rowIdPrefix="String_Node_Str" + dispatchId + "String_Node_Str";
    try {
      JSONObject root=new JSONObject();
      root.put("String_Node_Str",Integer.parseInt(echo) + 1);
      root.put("String_Node_Str",rows);
      root.put("String_Node_Str",rows);
      JSONArray ja=new JSONArray();
      root.put("String_Node_Str",ja);
      int firstRow=Integer.parseInt(firstRowStr);
      int maxRows=Integer.parseInt(maxRowStr);
      int lastRow=Math.min(rows,firstRow + maxRows);
      ResultInfos<?> results;
      if (StringHelper.containsNonWhitespace(ftE.getSearchText())) {
        results=dataSource.search(ftE.getSearchText(),null,firstRow,maxRows,orderBy);
      }
 else {
        results=dataSource.load(firstRow,maxRows,orderBy);
      }
      ftE.setCurrentFirstResult(results.getNextFirstResult());
      for (int i=firstRow; i < lastRow; i++) {
        JSONObject row=new JSONObject();
        if (ftE.isMultiSelect()) {
          StringBuilder sb=new StringBuilder();
          sb.append("String_Node_Str").append(rowIdPrefix).append(i).append("String_Node_Str");
          if (ftE.isAllSelectedIndex() || ftE.isMultiSelectedIndex(i)) {
            sb.append("String_Node_Str");
          }
          sb.append("String_Node_Str");
          row.put("String_Node_Str",sb.toString());
        }
        for (int j=0; j < columnsModel.getColumnCount(); j++) {
          FlexiColumnModel col=columnsModel.getColumnModel(j);
          if (ftE.isColumnModelVisible(col)) {
            int columnIndex=col.getColumnIndex();
            Object value=columnIndex >= 0 ? dataModel.getValueAt(i,columnIndex) : null;
            String val;
            if (value instanceof FormItem) {
              FormItem item=(FormItem)value;
              if (ftE.getRootForm() != item.getRootForm()) {
                item.setRootForm(ftE.getRootForm());
              }
              ftE.addFormItem(item);
              val=renderFormItem(item,request,ftE.getTranslator());
            }
 else {
              val=renderColumnRenderer(col,value,i,ftC,ubu,ftE.getTranslator());
            }
            row.put(col.getColumnKey(),val);
          }
        }
        row.put("String_Node_Str",rowIdPrefix + Integer.toString(i));
        ja.put(row);
      }
      return new JSONMediaResource(root,"String_Node_Str");
    }
 catch (    NumberFormatException e) {
      log.error("String_Node_Str",e);
    }
catch (    JSONException e) {
      log.error("String_Node_Str",e);
    }
  }
  return null;
}

Fixed version (ground truth):
@Override public MediaResource handle(String relPath,HttpServletRequest request){
  String firstRowStr=request.getParameter("String_Node_Str");
  String maxRowStr=request.getParameter("String_Node_Str");
  String echo=request.getParameter("String_Node_Str");
  String sortCol=request.getParameter("String_Node_Str");
  String sortDir=request.getParameter("String_Node_Str");
  FlexiTableElementImpl ftE=ftC.getFlexiTableElement();
  URLBuilder ubu=getURLBuilder(request);
  int sortedColIndex=-1;
  if (StringHelper.containsNonWhitespace(sortCol)) {
    sortedColIndex=Integer.parseInt(sortCol);
    if (ftE.isMultiSelect()) {
      sortedColIndex--;
    }
  }
  if (StringHelper.isLong(firstRowStr) && StringHelper.isLong(maxRowStr)) {
    FlexiTableDataModel<?> dataModel=ftE.getTableDataModel();
    FlexiTableColumnModel columnsModel=dataModel.getTableColumnModel();
    SortKey orderBy=null;
    if (sortedColIndex >= 0 && sortedColIndex < columnsModel.getColumnCount()) {
      int count=0;
      for (int i=0; i < columnsModel.getColumnCount() && count <= sortedColIndex; i++) {
        FlexiColumnModel sortedColumn=columnsModel.getColumnModel(i);
        if (ftE.isColumnModelVisible(sortedColumn)) {
          if (count == sortedColIndex && StringHelper.containsNonWhitespace(sortedColumn.getSortKey())) {
            orderBy=new SortKey(sortedColumn.getSortKey(),"String_Node_Str".equals(sortDir));
            break;
          }
          count++;
        }
      }
    }
    int rows=ftE.getTableDataModel().getRowCount();
    String dispatchId=ftE.getComponent().getDispatchID();
    String rowIdPrefix="String_Node_Str" + dispatchId + "String_Node_Str";
    try {
      JSONObject root=new JSONObject();
      root.put("String_Node_Str",Integer.parseInt(echo) + 1);
      root.put("String_Node_Str",rows);
      root.put("String_Node_Str",rows);
      JSONArray ja=new JSONArray();
      root.put("String_Node_Str",ja);
      int firstRow=Integer.parseInt(firstRowStr);
      int maxRows=Integer.parseInt(maxRowStr);
      int lastRow=Math.min(rows,firstRow + maxRows);
      ResultInfos<?> results=ftE.doScroll(firstRow,maxRows,orderBy);
      ftE.setCurrentFirstResult(results.getNextFirstResult());
      for (int i=firstRow; i < lastRow; i++) {
        JSONObject row=new JSONObject();
        if (ftE.isMultiSelect()) {
          StringBuilder sb=new StringBuilder();
          sb.append("String_Node_Str").append(rowIdPrefix).append(i).append("String_Node_Str");
          if (ftE.isAllSelectedIndex() || ftE.isMultiSelectedIndex(i)) {
            sb.append("String_Node_Str");
          }
          sb.append("String_Node_Str");
          row.put("String_Node_Str",sb.toString());
        }
        for (int j=0; j < columnsModel.getColumnCount(); j++) {
          FlexiColumnModel col=columnsModel.getColumnModel(j);
          if (ftE.isColumnModelVisible(col)) {
            int columnIndex=col.getColumnIndex();
            Object value=columnIndex >= 0 ? dataModel.getValueAt(i,columnIndex) : null;
            String val;
            if (value instanceof FormItem) {
              FormItem item=(FormItem)value;
              if (ftE.getRootForm() != item.getRootForm()) {
                item.setRootForm(ftE.getRootForm());
              }
              ftE.addFormItem(item);
              val=renderFormItem(item,request,ftE.getTranslator());
            }
 else {
              val=renderColumnRenderer(col,value,i,ftC,ubu,ftE.getTranslator());
            }
            row.put(col.getColumnKey(),val);
          }
        }
        row.put("String_Node_Str",rowIdPrefix + Integer.toString(i));
        ja.put(row);
      }
      return new JSONMediaResource(root,"String_Node_Str");
    }
 catch (    NumberFormatException e) {
      log.error("String_Node_Str",e);
    }
catch (    JSONException e) {
      log.error("String_Node_Str",e);
    }
  }
  return null;
}