Program: 74125
Project: 74125
Buggy source:
/** 
 * @throws IOException
 * @throws BirtException
 * @throws DataException
 */
private void createCube1() throws IOException, BirtException, DataException {
  Dimension[] dimensions=new Dimension[3];
  String[] colNames=new String[3];
  colNames[0]="String_Node_Str";
  colNames[1]="String_Node_Str";
  colNames[2]="String_Node_Str";
  DimensionForTest iterator=new DimensionForTest(colNames);
  iterator.setLevelMember(0,TestFactTable.L1Col);
  iterator.setLevelMember(1,TestFactTable.L2Col);
  iterator.setLevelMember(2,TestFactTable.L3Col);
  ILevelDefn[] levelDefs=new ILevelDefn[3];
  levelDefs[0]=new LevelDefinition("String_Node_Str",new String[]{"String_Node_Str"},null);
  levelDefs[1]=new LevelDefinition("String_Node_Str",new String[]{"String_Node_Str"},null);
  levelDefs[2]=new LevelDefinition("String_Node_Str",new String[]{"String_Node_Str"},null);
  dimensions[0]=(Dimension)DimensionFactory.createDimension("String_Node_Str",documentManager,iterator,levelDefs,false);
  IHierarchy hierarchy=dimensions[0].getHierarchy();
  assertEquals(hierarchy.getName(),"String_Node_Str");
  assertEquals(dimensions[0].length(),TestFactTable.L1Col.length);
  colNames=new String[1];
  colNames[0]="String_Node_Str";
  iterator=new DimensionForTest(colNames);
  iterator.setLevelMember(0,distinct(TestFactTable.L1Col));
  levelDefs=new ILevelDefn[1];
  levelDefs[0]=new LevelDefinition("String_Node_Str",new String[]{"String_Node_Str"},null);
  dimensions[1]=(Dimension)DimensionFactory.createDimension("String_Node_Str",documentManager,iterator,levelDefs,false);
  hierarchy=dimensions[1].getHierarchy();
  assertEquals(hierarchy.getName(),"String_Node_Str");
  assertEquals(dimensions[1].length(),3);
  colNames=new String[1];
  colNames[0]="String_Node_Str";
  iterator=new DimensionForTest(colNames);
  iterator.setLevelMember(0,TestFactTable.L3Col);
  levelDefs=new ILevelDefn[1];
  levelDefs[0]=new LevelDefinition("String_Node_Str",new String[]{"String_Node_Str"},null);
  dimensions[2]=(Dimension)DimensionFactory.createDimension("String_Node_Str",documentManager,iterator,levelDefs,false);
  hierarchy=dimensions[2].getHierarchy();
  assertEquals(hierarchy.getName(),"String_Node_Str");
  assertEquals(dimensions[2].length(),12);
  TestFactTable factTable2=new TestFactTable();
  String[] measureColumnName=new String[2];
  measureColumnName[0]="String_Node_Str";
  measureColumnName[1]="String_Node_Str";
  Cube cube=new Cube("String_Node_Str",documentManager);
  cube.create(CubeUtility.getKeyColNames(dimensions),dimensions,factTable2,measureColumnName,new StopSign());
  documentManager.flush();
}

Fixed version (ground truth):
/** 
 * @throws IOException
 * @throws BirtException
 * @throws DataException
 */
private void createCube1(IDocumentManager documentManager) throws IOException, BirtException, DataException {
  Dimension[] dimensions=new Dimension[3];
  String[] colNames=new String[3];
  colNames[0]="String_Node_Str";
  colNames[1]="String_Node_Str";
  colNames[2]="String_Node_Str";
  DimensionForTest iterator=new DimensionForTest(colNames);
  iterator.setLevelMember(0,TestFactTable.L1Col);
  iterator.setLevelMember(1,TestFactTable.L2Col);
  iterator.setLevelMember(2,TestFactTable.L3Col);
  ILevelDefn[] levelDefs=new ILevelDefn[3];
  levelDefs[0]=new LevelDefinition("String_Node_Str",new String[]{"String_Node_Str"},null);
  levelDefs[1]=new LevelDefinition("String_Node_Str",new String[]{"String_Node_Str"},null);
  levelDefs[2]=new LevelDefinition("String_Node_Str",new String[]{"String_Node_Str"},null);
  dimensions[0]=(Dimension)DimensionFactory.createDimension("String_Node_Str",documentManager,iterator,levelDefs,false);
  IHierarchy hierarchy=dimensions[0].getHierarchy();
  assertEquals(hierarchy.getName(),"String_Node_Str");
  assertEquals(dimensions[0].length(),TestFactTable.L1Col.length);
  colNames=new String[1];
  colNames[0]="String_Node_Str";
  iterator=new DimensionForTest(colNames);
  iterator.setLevelMember(0,distinct(TestFactTable.L1Col));
  levelDefs=new ILevelDefn[1];
  levelDefs[0]=new LevelDefinition("String_Node_Str",new String[]{"String_Node_Str"},null);
  dimensions[1]=(Dimension)DimensionFactory.createDimension("String_Node_Str",documentManager,iterator,levelDefs,false);
  hierarchy=dimensions[1].getHierarchy();
  assertEquals(hierarchy.getName(),"String_Node_Str");
  assertEquals(dimensions[1].length(),3);
  colNames=new String[1];
  colNames[0]="String_Node_Str";
  iterator=new DimensionForTest(colNames);
  iterator.setLevelMember(0,TestFactTable.L3Col);
  levelDefs=new ILevelDefn[1];
  levelDefs[0]=new LevelDefinition("String_Node_Str",new String[]{"String_Node_Str"},null);
  dimensions[2]=(Dimension)DimensionFactory.createDimension("String_Node_Str",documentManager,iterator,levelDefs,false);
  hierarchy=dimensions[2].getHierarchy();
  assertEquals(hierarchy.getName(),"String_Node_Str");
  assertEquals(dimensions[2].length(),12);
  TestFactTable factTable2=new TestFactTable();
  String[] measureColumnName=new String[2];
  measureColumnName[0]="String_Node_Str";
  measureColumnName[1]="String_Node_Str";
  Cube cube=new Cube("String_Node_Str",documentManager);
  cube.create(CubeUtility.getKeyColNames(dimensions),dimensions,factTable2,measureColumnName,new StopSign());
  documentManager.flush();
}