Program: 57712
Project: 57712
Buggy source:
/** 
 * Fills the layout with data specific for the data containers 
 */
private void prepareData(DataContainer dataContainer,ArrayList<ElementLayout> rowLayouts,ColumnCaptionLayout captionLayout,ArrayList<Integer> davidIDs){
  GeneticDataDomain dataDomain=(GeneticDataDomain)dataContainer.getDataDomain();
  ADataPerspective<?,?,?,?> experimentPerspective;
  if (dataDomain.isGeneRecord()) {
    experimentPerspective=dataContainer.getDimensionPerspective();
  }
 else {
    experimentPerspective=dataContainer.getRecordPerspective();
  }
  Group group=null;
  if (dataDomain.isGeneRecord()) {
    group=dataContainer.getDimensionGroup();
    if (group == null) {
      dataContainer.getDimensionPerspective().getVirtualArray().getGroupList().get(0);
    }
  }
 else {
    group=dataContainer.getRecordGroup();
    if (group == null) {
      dataContainer.getRecordPerspective().getVirtualArray().getGroupList().get(0);
    }
  }
  captionLayout.init(group,experimentPerspective);
  IDType geneIDTYpe=dataDomain.getGeneIDType();
  for (int rowCount=0; rowCount < davidIDs.size(); rowCount++) {
    Integer davidID=davidIDs.get(rowCount);
    Set<Integer> geneIDs=dataDomain.getGeneIDMappingManager().getIDAsSet(IDType.getIDType("String_Node_Str"),geneIDTYpe,davidID);
    Integer geneID;
    if (geneIDs == null) {
      System.out.println("String_Node_Str" + davidID);
      geneID=null;
    }
 else {
      geneID=geneIDs.iterator().next();
      if (geneIDs.size() > 1) {
        Set<String> names=dataDomain.getGeneIDMappingManager().getIDAsSet(IDType.getIDType("String_Node_Str"),dataDomain.getHumanReadableGeneIDType(),davidID);
        System.out.println("String_Node_Str" + names + "String_Node_Str"+ geneIDs);
      }
    }
    ElementLayout dataContainerLayout=rowLayouts.get(rowCount);
    if (sampleGroupSelectionManager.checkStatus(abstractGroupType,group.getID())) {
      dataContainerLayout.setPixelSizeX(ABSTRACT_GROUP_PIXEL_SIZE);
      captionLayout.setPixelSizeX(ABSTRACT_GROUP_PIXEL_SIZE);
    }
 else {
      dataContainerLayout.setDynamicSizeUnitsX(experimentPerspective.getVirtualArray().size());
      captionLayout.setDynamicSizeUnitsX(experimentPerspective.getVirtualArray().size());
    }
    if (!dataDomain.getLabel().contains("String_Node_Str")) {
      dataContainerLayout.setRenderer(new ContinuousContentRenderer(geneID,davidID,dataDomain,dataContainer,experimentPerspective,parentView,this,group));
    }
 else {
      dataContainerLayout.setRenderer(new CategoricalRowContentRenderer(geneID,davidID,dataDomain,dataContainer,experimentPerspective,parentView,this,group));
    }
  }
}

Fixed version (ground truth):
/** 
 * Fills the layout with data specific for the data containers 
 */
private void prepareData(DataContainer dataContainer,ArrayList<ElementLayout> rowLayouts,ColumnCaptionLayout captionLayout,ArrayList<Integer> davidIDs){
  GeneticDataDomain dataDomain=(GeneticDataDomain)dataContainer.getDataDomain();
  ADataPerspective<?,?,?,?> experimentPerspective;
  if (dataDomain.isGeneRecord()) {
    experimentPerspective=dataContainer.getDimensionPerspective();
  }
 else {
    experimentPerspective=dataContainer.getRecordPerspective();
  }
  Group group=null;
  if (dataDomain.isGeneRecord()) {
    group=dataContainer.getDimensionGroup();
    if (group == null) {
      dataContainer.getDimensionPerspective().getVirtualArray().getGroupList().get(0);
    }
  }
 else {
    group=dataContainer.getRecordGroup();
    if (group == null) {
      dataContainer.getRecordPerspective().getVirtualArray().getGroupList().get(0);
    }
  }
  captionLayout.init(group,experimentPerspective);
  IDType geneIDTYpe=dataDomain.getGeneIDType();
  for (int rowCount=0; rowCount < davidIDs.size(); rowCount++) {
    Integer davidID=davidIDs.get(rowCount);
    Set<Integer> geneIDs=dataDomain.getGeneIDMappingManager().getIDAsSet(IDType.getIDType("String_Node_Str"),geneIDTYpe,davidID);
    Integer geneID;
    if (geneIDs == null) {
      geneID=null;
    }
 else {
      geneID=geneIDs.iterator().next();
      if (geneIDs.size() > 1) {
        Set<String> names=dataDomain.getGeneIDMappingManager().getIDAsSet(IDType.getIDType("String_Node_Str"),dataDomain.getHumanReadableGeneIDType(),davidID);
        System.out.println("String_Node_Str" + names + "String_Node_Str"+ geneIDs);
      }
    }
    ElementLayout dataContainerLayout=rowLayouts.get(rowCount);
    if (sampleGroupSelectionManager.checkStatus(abstractGroupType,group.getID())) {
      dataContainerLayout.setPixelSizeX(ABSTRACT_GROUP_PIXEL_SIZE);
      captionLayout.setPixelSizeX(ABSTRACT_GROUP_PIXEL_SIZE);
    }
 else {
      dataContainerLayout.setDynamicSizeUnitsX(experimentPerspective.getVirtualArray().size());
      captionLayout.setDynamicSizeUnitsX(experimentPerspective.getVirtualArray().size());
    }
    if (!dataDomain.getLabel().contains("String_Node_Str")) {
      dataContainerLayout.setRenderer(new ContinuousContentRenderer(geneID,davidID,dataDomain,dataContainer,experimentPerspective,parentView,this,group));
    }
 else {
      dataContainerLayout.setRenderer(new CategoricalRowContentRenderer(geneID,davidID,dataDomain,dataContainer,experimentPerspective,parentView,this,group));
    }
  }
}