Program: 136824
Project: 136824
Buggy source:
/** 
 * @return get the data which will be displayed on the drill down editor.
 */
public List<Object[]> filterAdaptDataList(){
  List<Object[]> newColumnElementList=new ArrayList<Object[]>();
  AnalyzedDataSet analysisDataSet=this.getAnalysis().getResults().getIndicToRowMap().get(currIndicator);
  if (analysisDataSet.getData() != null && analysisDataSet.getData().size() > 0) {
    List<Object[]> dataList=analysisDataSet.getData();
    newColumnElementList.addAll(getDesignatedData(dataList));
  }
 else   if (analysisDataSet.getFrequencyData() != null && analysisDataSet.getFrequencyData().size() > 0) {
    String selectValue=this.getSelectValue();
    if (currIndicator instanceof LengthIndicator) {
      selectValue=((LengthIndicator)currIndicator).getLength().toString();
    }
    if (currIndicator instanceof DatePatternFreqIndicator) {
      for (      Object expression : analysisDataSet.getFrequencyData().keySet()) {
        if (Pattern.matches(((DatePatternFreqIndicator)currIndicator).getRegex(selectValue),expression.toString())) {
          newColumnElementList.addAll(analysisDataSet.getFrequencyData().get(expression));
        }
      }
    }
 else {
      List<Object[]> list=analysisDataSet.getFrequencyData().get(selectValue);
      if (list != null && list.size() > 0) {
        newColumnElementList.addAll(list);
      }
    }
  }
 else   if (analysisDataSet.getPatternData() != null && analysisDataSet.getPatternData().size() > 0) {
    if (DrillDownUtils.judgeMenuType(getMenuType(),DrillDownUtils.MENU_INVALID_TYPE)) {
      newColumnElementList.addAll(getDesignatedData((List<Object[]>)analysisDataSet.getPatternData().get(AnalyzedDataSetImpl.INVALID_VALUE)));
    }
 else     if (DrillDownUtils.judgeMenuType(getMenuType(),DrillDownUtils.MENU_VALID_TYPE)) {
      newColumnElementList.addAll(getDesignatedData((List<Object[]>)analysisDataSet.getPatternData().get(AnalyzedDataSetImpl.VALID_VALUE)));
    }
  }
  return newColumnElementList;
}

Fixed version (ground truth):
/** 
 * @return get the data which will be displayed on the drill down editor.
 */
public List<Object[]> filterAdaptDataList(){
  List<Object[]> newColumnElementList=new ArrayList<Object[]>();
  AnalyzedDataSet analysisDataSet=this.getAnalysis().getResults().getIndicToRowMap().get(currIndicator);
  if (analysisDataSet == null) {
    return newColumnElementList;
  }
  if (analysisDataSet.getData() != null && analysisDataSet.getData().size() > 0) {
    List<Object[]> dataList=analysisDataSet.getData();
    newColumnElementList.addAll(getDesignatedData(dataList));
  }
 else   if (analysisDataSet.getFrequencyData() != null && analysisDataSet.getFrequencyData().size() > 0) {
    String selectValue=this.getSelectValue();
    if (currIndicator instanceof LengthIndicator) {
      selectValue=((LengthIndicator)currIndicator).getLength().toString();
    }
    if (currIndicator instanceof DatePatternFreqIndicator) {
      for (      Object expression : analysisDataSet.getFrequencyData().keySet()) {
        if (Pattern.matches(((DatePatternFreqIndicator)currIndicator).getRegex(selectValue),expression.toString())) {
          newColumnElementList.addAll(analysisDataSet.getFrequencyData().get(expression));
        }
      }
    }
 else {
      List<Object[]> list=analysisDataSet.getFrequencyData().get(selectValue);
      if (list != null && list.size() > 0) {
        newColumnElementList.addAll(list);
      }
    }
  }
 else   if (analysisDataSet.getPatternData() != null && analysisDataSet.getPatternData().size() > 0) {
    if (DrillDownUtils.judgeMenuType(getMenuType(),DrillDownUtils.MENU_INVALID_TYPE)) {
      newColumnElementList.addAll(getDesignatedData((List<Object[]>)analysisDataSet.getPatternData().get(AnalyzedDataSetImpl.INVALID_VALUE)));
    }
 else     if (DrillDownUtils.judgeMenuType(getMenuType(),DrillDownUtils.MENU_VALID_TYPE)) {
      newColumnElementList.addAll(getDesignatedData((List<Object[]>)analysisDataSet.getPatternData().get(AnalyzedDataSetImpl.VALID_VALUE)));
    }
  }
  return newColumnElementList;
}