Program: 75941
Project: 75941
Buggy source:
/** 
 * test populate data along dimension cursor
 */
public void testCursorModel4(){
  try {
    ICubeQueryDefinition cqd=new CubeQueryDefinition(CubeCreator.cubeName);
    cqd.createMeasure("String_Node_Str");
    cqd.createMeasure("String_Node_Str");
    IEdgeDefinition columnEdge=cqd.createEdge(ICubeQueryDefinition.ROW_EDGE);
    IDimensionDefinition timeDim=columnEdge.createDimension("String_Node_Str");
    IHierarchyDefinition timeHier=timeDim.createHierarchy("String_Node_Str");
    timeHier.createLevel("String_Node_Str");
    IEdgeDefinition rowEdge=cqd.createEdge(ICubeQueryDefinition.COLUMN_EDGE);
    IDimensionDefinition geographyDim=rowEdge.createDimension("String_Node_Str");
    IHierarchyDefinition geographyHier=geographyDim.createHierarchy("String_Node_Str");
    geographyHier.createLevel("String_Node_Str");
    geographyHier.createLevel("String_Node_Str");
    geographyHier.createLevel("String_Node_Str");
    IBinding rowGrandTotal=new Binding("String_Node_Str");
    rowGrandTotal.setAggrFunction(BuiltInAggregationFactory.TOTAL_SUM_FUNC);
    rowGrandTotal.setExpression(new ScriptExpression("String_Node_Str"));
    rowGrandTotal.addAggregateOn("String_Node_Str");
    IBinding columnGrandTotal=new Binding("String_Node_Str");
    columnGrandTotal.setAggrFunction(BuiltInAggregationFactory.TOTAL_SUM_FUNC);
    columnGrandTotal.setExpression(new ScriptExpression("String_Node_Str"));
    columnGrandTotal.addAggregateOn("String_Node_Str");
    columnGrandTotal.addAggregateOn("String_Node_Str");
    columnGrandTotal.addAggregateOn("String_Node_Str");
    cqd.addBinding(rowGrandTotal);
    cqd.addBinding(columnGrandTotal);
    BirtCubeView cubeView=new BirtCubeView(new CubeQueryExecutor(cqd,this.scope,DataEngineContext.newInstance(DataEngineContext.DIRECT_PRESENTATION,scope,null,null)));
    CubeCursor dataCursor=cubeView.getCubeCursor();
    List columnEdgeBindingNames=new ArrayList();
    columnEdgeBindingNames.add("String_Node_Str");
    columnEdgeBindingNames.add("String_Node_Str");
    columnEdgeBindingNames.add("String_Node_Str");
    List rowEdgeBindingNames=new ArrayList();
    rowEdgeBindingNames.add("String_Node_Str");
    List measureBindingNames=new ArrayList();
    measureBindingNames.add("String_Node_Str");
    measureBindingNames.add("String_Node_Str");
    List dimCursorOnColumn=cubeView.getColumnEdgeView().getEdgeCursor().getDimensionCursor();
    List dimCursorOnRow=cubeView.getRowEdgeView().getEdgeCursor().getDimensionCursor();
    this.printCubeAlongDimension(dataCursor,(DimensionCursor)dimCursorOnColumn.get(0),(DimensionCursor)dimCursorOnColumn.get(1),(DimensionCursor)dimCursorOnColumn.get(2),(DimensionCursor)dimCursorOnRow.get(0));
  }
 catch (  Exception e) {
    fail("String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * test populate data along dimension cursor
 */
public void testCursorModel4(){
  try {
    ICubeQueryDefinition cqd=new CubeQueryDefinition(CubeCreator.cubeName);
    cqd.createMeasure("String_Node_Str");
    cqd.createMeasure("String_Node_Str");
    IEdgeDefinition columnEdge=cqd.createEdge(ICubeQueryDefinition.ROW_EDGE);
    IDimensionDefinition timeDim=columnEdge.createDimension("String_Node_Str");
    IHierarchyDefinition timeHier=timeDim.createHierarchy("String_Node_Str");
    timeHier.createLevel("String_Node_Str");
    IEdgeDefinition rowEdge=cqd.createEdge(ICubeQueryDefinition.COLUMN_EDGE);
    IDimensionDefinition geographyDim=rowEdge.createDimension("String_Node_Str");
    IHierarchyDefinition geographyHier=geographyDim.createHierarchy("String_Node_Str");
    geographyHier.createLevel("String_Node_Str");
    geographyHier.createLevel("String_Node_Str");
    geographyHier.createLevel("String_Node_Str");
    IBinding rowGrandTotal=new Binding("String_Node_Str");
    rowGrandTotal.setAggrFunction(BuiltInAggregationFactory.TOTAL_SUM_FUNC);
    rowGrandTotal.setExpression(new ScriptExpression("String_Node_Str"));
    rowGrandTotal.addAggregateOn("String_Node_Str");
    IBinding columnGrandTotal=new Binding("String_Node_Str");
    columnGrandTotal.setAggrFunction(BuiltInAggregationFactory.TOTAL_SUM_FUNC);
    columnGrandTotal.setExpression(new ScriptExpression("String_Node_Str"));
    columnGrandTotal.addAggregateOn("String_Node_Str");
    columnGrandTotal.addAggregateOn("String_Node_Str");
    columnGrandTotal.addAggregateOn("String_Node_Str");
    cqd.addBinding(rowGrandTotal);
    cqd.addBinding(columnGrandTotal);
    BirtCubeView cubeView=new BirtCubeView(new CubeQueryExecutor(cqd,de.getSession(),this.scope,de.getContext()));
    CubeCursor dataCursor=cubeView.getCubeCursor();
    List columnEdgeBindingNames=new ArrayList();
    columnEdgeBindingNames.add("String_Node_Str");
    columnEdgeBindingNames.add("String_Node_Str");
    columnEdgeBindingNames.add("String_Node_Str");
    List rowEdgeBindingNames=new ArrayList();
    rowEdgeBindingNames.add("String_Node_Str");
    List measureBindingNames=new ArrayList();
    measureBindingNames.add("String_Node_Str");
    measureBindingNames.add("String_Node_Str");
    List dimCursorOnColumn=cubeView.getColumnEdgeView().getEdgeCursor().getDimensionCursor();
    List dimCursorOnRow=cubeView.getRowEdgeView().getEdgeCursor().getDimensionCursor();
    this.printCubeAlongDimension(dataCursor,(DimensionCursor)dimCursorOnColumn.get(0),(DimensionCursor)dimCursorOnColumn.get(1),(DimensionCursor)dimCursorOnColumn.get(2),(DimensionCursor)dimCursorOnRow.get(0));
  }
 catch (  Exception e) {
    fail("String_Node_Str");
  }
}