Program: 68451
Project: 68451
Buggy source:
public void testNavigator() throws DataException, OLAPException, IOException {
  ICubeQueryDefinition cqd=creator.createQueryDefinition();
  IBinding rowGrandTotal=new Binding("String_Node_Str");
  rowGrandTotal.setAggrFunction(IBuildInAggregation.TOTAL_SUM_FUNC);
  rowGrandTotal.setExpression(new ScriptExpression("String_Node_Str"));
  rowGrandTotal.addAggregateOn("String_Node_Str");
  rowGrandTotal.addAggregateOn("String_Node_Str");
  IBinding columnGrandTotal=new Binding("String_Node_Str");
  columnGrandTotal.setAggrFunction(IBuildInAggregation.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");
  columnGrandTotal.addAggregateOn("String_Node_Str");
  cqd.addBinding(rowGrandTotal);
  cqd.addBinding(columnGrandTotal);
  BirtCubeView cubeView=new BirtCubeView(new CubeQueryExecutor(null,cqd,de.getSession(),this.scope,de.getContext()));
  CubeCursor dataCursor=cubeView.getCubeCursor(new StopSign(),cube);
  EdgeCursor rowCursor=cubeView.getRowEdgeView().getEdgeCursor();
  EdgeCursor columnCursor=cubeView.getColumnEdgeView().getEdgeCursor();
  DimensionCursor countryCursor=(DimensionCursor)columnCursor.getDimensionCursor().get(0);
  DimensionCursor cityCursor=(DimensionCursor)columnCursor.getDimensionCursor().get(1);
  DimensionCursor streetCursor=(DimensionCursor)columnCursor.getDimensionCursor().get(2);
  DimensionCursor timeCursor=(DimensionCursor)columnCursor.getDimensionCursor().get(3);
  columnCursor.beforeFirst();
  String out="String_Node_Str";
  while (columnCursor.next()) {
    out+="String_Node_Str" + columnCursor.getPosition() + "String_Node_Str";
    out+="String_Node_Str" + countryCursor.getEdgeStart() + "String_Node_Str";
    out+="String_Node_Str" + countryCursor.getEdgeEnd() + "String_Node_Str";
    out+="String_Node_Str" + cityCursor.getEdgeStart() + "String_Node_Str";
    out+="String_Node_Str" + cityCursor.getEdgeEnd() + "String_Node_Str";
    out+="String_Node_Str" + streetCursor.getEdgeStart() + "String_Node_Str";
    out+="String_Node_Str" + streetCursor.getEdgeEnd() + "String_Node_Str";
    out+="String_Node_Str" + timeCursor.getEdgeStart() + "String_Node_Str";
    out+="String_Node_Str" + timeCursor.getEdgeEnd() + "String_Node_Str";
    out+="String_Node_Str";
  }
  System.out.print(out);
  testOut.print(out);
  checkOutputFile();
  close(dataCursor);
}

Fixed version (ground truth):
public void testNavigator() throws DataException, OLAPException, IOException {
  ICubeQueryDefinition cqd=creator.createQueryDefinition();
  IBinding rowGrandTotal=new Binding("String_Node_Str");
  rowGrandTotal.setAggrFunction(IBuildInAggregation.TOTAL_SUM_FUNC);
  rowGrandTotal.setExpression(new ScriptExpression("String_Node_Str"));
  rowGrandTotal.addAggregateOn("String_Node_Str");
  rowGrandTotal.addAggregateOn("String_Node_Str");
  IBinding columnGrandTotal=new Binding("String_Node_Str");
  columnGrandTotal.setAggrFunction(IBuildInAggregation.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");
  columnGrandTotal.addAggregateOn("String_Node_Str");
  cqd.addBinding(rowGrandTotal);
  cqd.addBinding(columnGrandTotal);
  BirtCubeView cubeView=new BirtCubeView(new CubeQueryExecutor(null,cqd,de.getSession(),this.scope,de.getContext()));
  CubeCursor dataCursor=cubeView.getCubeCursor(new StopSign(),cube,false);
  EdgeCursor rowCursor=cubeView.getRowEdgeView().getEdgeCursor();
  EdgeCursor columnCursor=cubeView.getColumnEdgeView().getEdgeCursor();
  DimensionCursor countryCursor=(DimensionCursor)columnCursor.getDimensionCursor().get(0);
  DimensionCursor cityCursor=(DimensionCursor)columnCursor.getDimensionCursor().get(1);
  DimensionCursor streetCursor=(DimensionCursor)columnCursor.getDimensionCursor().get(2);
  DimensionCursor timeCursor=(DimensionCursor)columnCursor.getDimensionCursor().get(3);
  columnCursor.beforeFirst();
  String out="String_Node_Str";
  while (columnCursor.next()) {
    out+="String_Node_Str" + columnCursor.getPosition() + "String_Node_Str";
    out+="String_Node_Str" + countryCursor.getEdgeStart() + "String_Node_Str";
    out+="String_Node_Str" + countryCursor.getEdgeEnd() + "String_Node_Str";
    out+="String_Node_Str" + cityCursor.getEdgeStart() + "String_Node_Str";
    out+="String_Node_Str" + cityCursor.getEdgeEnd() + "String_Node_Str";
    out+="String_Node_Str" + streetCursor.getEdgeStart() + "String_Node_Str";
    out+="String_Node_Str" + streetCursor.getEdgeEnd() + "String_Node_Str";
    out+="String_Node_Str" + timeCursor.getEdgeStart() + "String_Node_Str";
    out+="String_Node_Str" + timeCursor.getEdgeEnd() + "String_Node_Str";
    out+="String_Node_Str";
  }
  System.out.print(out);
  testOut.print(out);
  checkOutputFile();
  close(dataCursor);
}