Program: 67589
Project: 67589
Buggy source:
/** 
 * get Cached metadata
 * @throws BirtException
 */
public DataSetViewData[] populateAllCachedMetaData(DataSetHandle dataSetHandle,DataRequestSession session) throws BirtException {
  IResultMetaData metaData=session.getDataSetMetaData(dataSetHandle,true);
  DataSetViewData[] items=new DataSetViewData[metaData.getColumnCount()];
  for (int i=0; i < metaData.getColumnCount(); i++) {
    items[i]=new DataSetViewData();
    items[i].setName(metaData.getColumnName(i + 1));
    items[i].setDataTypeName(DataAdapterUtil.adapterToModelDataType(metaData.getColumnType(i + 1)));
    items[i].setAlias(metaData.getColumnAlias(i + 1));
    items[i].setComputedColumn(metaData.isComputedColumn(i + 1));
    items[i].setPosition(i + 1);
    items[i].setDataType(metaData.getColumnType(i + 1));
    ColumnHintHandle hint=findColumnHint(dataSetHandle,items[i].getName());
    if (hint != null) {
      if (!items[i].isComputedColumn())       items[i].setAnalysis(this.getDefaultAnalysisType(items[i].getDataTypeName(),hint.getAnalysis()));
 else       items[i].setAnalysis(hint.getAnalysis());
      items[i].setACLExpression(hint.getACLExpression());
      items[i].setFormat(hint.getFormat());
      items[i].setDisplayLength(hint.getDisplayLength());
      items[i].setHeading(hint.getHeading());
      items[i].setHelpText(hint.getHelpText());
      items[i].setHorizontalAlign(hint.getHorizontalAlign());
      items[i].setTextFormat(hint.getTextFormat());
      items[i].setDescription(hint.getDescription());
      items[i].setWordWrap(hint.wordWrap());
    }
 else {
      if (items[i].isComputedColumn())       items[i].setAnalysis(null);
 else       items[i].setAnalysis(this.getDefaultAnalysisType(items[i].getDataTypeName(),null));
    }
  }
  return items;
}

Fixed version (ground truth):
/** 
 * get Cached metadata
 * @throws BirtException
 */
public DataSetViewData[] populateAllCachedMetaData(DataSetHandle dataSetHandle,DataRequestSession session) throws BirtException {
  IResultMetaData metaData=session.getDataSetMetaData(dataSetHandle,true);
  DataSetViewData[] items=new DataSetViewData[metaData.getColumnCount()];
  for (int i=0; i < metaData.getColumnCount(); i++) {
    items[i]=new DataSetViewData();
    items[i].setName(metaData.getColumnName(i + 1));
    items[i].setDataTypeName(DataAdapterUtil.adapterToModelDataType(metaData.getColumnType(i + 1)));
    items[i].setAlias(metaData.getColumnAlias(i + 1));
    items[i].setComputedColumn(metaData.isComputedColumn(i + 1));
    items[i].setPosition(i + 1);
    items[i].setDataType(metaData.getColumnType(i + 1));
    ColumnHintHandle hint=findColumnHint(dataSetHandle,items[i].getName());
    if (hint != null) {
      if (!items[i].isComputedColumn())       items[i].setAnalysis(this.getDefaultAnalysisType(items[i].getName(),items[i].getDataTypeName(),hint.getAnalysis()));
 else       items[i].setAnalysis(hint.getAnalysis());
      items[i].setACLExpression(hint.getACLExpression());
      items[i].setFormat(hint.getFormat());
      items[i].setDisplayLength(hint.getDisplayLength());
      items[i].setHeading(hint.getHeading());
      items[i].setHelpText(hint.getHelpText());
      items[i].setHorizontalAlign(hint.getHorizontalAlign());
      items[i].setTextFormat(hint.getTextFormat());
      items[i].setDescription(hint.getDescription());
      items[i].setWordWrap(hint.wordWrap());
    }
 else {
      if (items[i].isComputedColumn())       items[i].setAnalysis(null);
 else       items[i].setAnalysis(this.getDefaultAnalysisType(items[i].getName(),items[i].getDataTypeName(),null));
    }
  }
  return items;
}