Program: 137715
Project: 137715
Buggy source:
/** 
 * handle Objects and store data for MDM.
 * @param rowMap
 * @param objectLs
 * @param columnList
 */
private void handleObjects(Map<String,String> rowMap,EList<Object> objectLs,List<TdXmlElementType> columnList){
  EList<Indicator> indicators=analysis.getResults().getIndicators();
  EMap<Indicator,AnalyzedDataSet> indicToRowMap=analysis.getResults().getIndicToRowMap();
  int recordIncrement=0;
  for (  Indicator indicator : indicators) {
    if (!this.continueRun()) {
      break;
    }
    if (ColumnsetPackage.eINSTANCE.getColumnSetMultiValueIndicator().isSuperTypeOf(indicator.eClass())) {
      indicator.handle(objectLs);
      if (indicator instanceof SimpleStatIndicator) {
        if (!indicator.isStoreData()) {
          break;
        }
        SimpleStatIndicator simpIndi=(SimpleStatIndicator)indicator;
        for (        Indicator leafIndicator : simpIndi.getLeafIndicators()) {
          if (!this.continueRun()) {
            break;
          }
          if (!(leafIndicator instanceof RowCountIndicator)) {
            continue;
          }
          List<Object[]> valueObjectList=initDataSet(leafIndicator,indicToRowMap);
          recordIncrement=valueObjectList.size();
          int offset=0;
          for (          TdXmlElementType columnElement : columnList) {
            if (!this.continueRun()) {
              break;
            }
            Object newobject=rowMap.get(columnElement.getName());
            if (recordIncrement < analysis.getParameters().getMaxNumberRows()) {
              if (recordIncrement < valueObjectList.size()) {
                valueObjectList.get(recordIncrement)[offset]=newobject;
              }
 else {
                Object[] valueObject=new Object[columnList.size()];
                valueObject[offset]=newobject;
                valueObjectList.add(valueObject);
              }
            }
            offset++;
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * handle Objects and store data for MDM.
 * @param rowMap
 * @param objectLs
 * @param columnList
 */
private void handleObjects(Map<String,String> rowMap,EList<Object> objectLs,List<TdXmlElementType> columnList){
  EList<Indicator> indicators=analysis.getResults().getIndicators();
  EMap<Indicator,AnalyzedDataSet> indicToRowMap=analysis.getResults().getIndicToRowMap();
  int recordIncrement=0;
  for (  Indicator indicator : indicators) {
    if (!this.continueRun()) {
      break;
    }
    if (ColumnsetPackage.eINSTANCE.getColumnSetMultiValueIndicator().isSuperTypeOf(indicator.eClass())) {
      indicator.handle(objectLs);
      if (indicator instanceof SimpleStatIndicator) {
        if (!indicator.isStoreData()) {
          continue;
        }
        SimpleStatIndicator simpIndi=(SimpleStatIndicator)indicator;
        for (        Indicator leafIndicator : simpIndi.getLeafIndicators()) {
          if (!this.continueRun()) {
            break;
          }
          if (!(leafIndicator instanceof RowCountIndicator)) {
            continue;
          }
          List<Object[]> valueObjectList=initDataSet(leafIndicator,indicToRowMap);
          recordIncrement=valueObjectList.size();
          int offset=0;
          for (          TdXmlElementType columnElement : columnList) {
            if (!this.continueRun()) {
              break;
            }
            Object newobject=rowMap.get(columnElement.getName());
            if (recordIncrement < analysis.getParameters().getMaxNumberRows()) {
              if (recordIncrement < valueObjectList.size()) {
                valueObjectList.get(recordIncrement)[offset]=newobject;
              }
 else {
                Object[] valueObject=new Object[columnList.size()];
                valueObject[offset]=newobject;
                valueObjectList.add(valueObject);
              }
            }
            offset++;
          }
        }
      }
    }
  }
}