Program: 67236
Project: 67236
Buggy source:
/** 
 * Creates the evaluator for Cube Live preview.
 * @param cube
 * @param cm
 * @param columnExpression
 * @return
 * @throws BirtException
 */
@SuppressWarnings("String_Node_Str") protected IDataRowExpressionEvaluator createCubeEvaluator(CubeHandle cube,final Chart cm,List<String> columnExpression) throws BirtException {
  IBaseCubeQueryDefinition qd=null;
  ReportItemHandle referredHandle=ChartReportItemUtil.getReportItemReference(itemHandle);
  boolean isChartCubeReference=isChartReportItemHandle(referredHandle);
  if (referredHandle != null && !isChartCubeReference) {
    ExtendedItemHandle bindingHandle=(ExtendedItemHandle)referredHandle;
    boolean disableFilter=false;
    if (referredHandle.getContainer() instanceof ReportItemHandle) {
      disableFilter=true;
    }
    qd=CrosstabQueryUtil.createCubeQuery((CrosstabReportItemHandle)bindingHandle.getReportItem(),null,true,true,true,true,true,!disableFilter);
    ICubeQueryDefinition queryDef=(ICubeQueryDefinition)qd;
    if (columnExpression != null) {
      ExpressionSet exprSet=new ExpressionSet();
      exprSet.addAll(columnExpression);
      for (      String expr : exprSet) {
        exprCodec.decode(expr);
        String bindingName=exprCodec.getExpression();
        Binding colBinding=new Binding(bindingName);
        colBinding.setDataType(org.eclipse.birt.core.data.DataType.ANY_TYPE);
        colBinding.setExpression(ChartReportItemUtil.adaptExpression(exprCodec,session.getModelAdaptor(),true));
        queryDef.addBinding(colBinding);
      }
    }
  }
 else {
    qd=new ChartCubeQueryHelper(itemHandle,cm,session.getModelAdaptor()).createCubeQuery(null,columnExpression.toArray(new String[columnExpression.size()]));
  }
  if (needDefineCube(cube)) {
    DataService.getInstance().registerSession(cube,session);
    session.defineCube(cube);
  }
  setRowLimit(session,getMaxRow(),true);
  ICubeQueryResults cqr=dteAdapter.executeQuery(session,(ICubeQueryDefinition)qd);
  if (referredHandle != null && !isChartCubeReference) {
    return new SharedCubeResultSetEvaluator(cqr,qd,cm);
  }
  return new BIRTCubeResultSetEvaluator(cqr);
}

Fixed version (ground truth):
/** 
 * Creates the evaluator for Cube Live preview.
 * @param cube
 * @param cm
 * @param columnExpression
 * @return
 * @throws BirtException
 */
@SuppressWarnings("String_Node_Str") protected IDataRowExpressionEvaluator createCubeEvaluator(CubeHandle cube,final Chart cm,List<String> columnExpression) throws BirtException {
  IBaseCubeQueryDefinition qd=null;
  ReportItemHandle referredHandle=ChartReportItemUtil.getReportItemReference(itemHandle);
  boolean isChartCubeReference=isChartReportItemHandle(referredHandle);
  if (referredHandle != null && !isChartCubeReference) {
    ExtendedItemHandle bindingHandle=(ExtendedItemHandle)referredHandle;
    qd=CrosstabQueryUtil.createCubeQuery((CrosstabReportItemHandle)bindingHandle.getReportItem(),null,true,true,true,true,true,true);
    ICubeQueryDefinition queryDef=(ICubeQueryDefinition)qd;
    if (columnExpression != null) {
      ExpressionSet exprSet=new ExpressionSet();
      exprSet.addAll(columnExpression);
      for (      String expr : exprSet) {
        exprCodec.decode(expr);
        String bindingName=exprCodec.getExpression();
        Binding colBinding=new Binding(bindingName);
        colBinding.setDataType(org.eclipse.birt.core.data.DataType.ANY_TYPE);
        colBinding.setExpression(ChartReportItemUtil.adaptExpression(exprCodec,session.getModelAdaptor(),true));
        queryDef.addBinding(colBinding);
      }
    }
  }
 else {
    qd=new ChartCubeQueryHelper(itemHandle,cm,session.getModelAdaptor()).createCubeQuery(null,columnExpression.toArray(new String[columnExpression.size()]));
  }
  resetCubeQuery(qd);
  if (needDefineCube(cube)) {
    DataService.getInstance().registerSession(cube,session);
    session.defineCube(cube);
  }
  setRowLimit(session,getMaxRow(),true);
  ICubeQueryResults cqr=dteAdapter.executeQuery(session,(ICubeQueryDefinition)qd);
  if (referredHandle != null && !isChartCubeReference) {
    return new SharedCubeResultSetEvaluator(cqr,qd,cm);
  }
  return new BIRTCubeResultSetEvaluator(cqr);
}