Program: 57245
Project: 57245
Buggy source:
@Override public void renderContent(GL2 gl){
  if (geneID == null || average == null)   return;
  List<SelectionType> geneSelectionTypes=geneSelectionManager.getSelectionTypes(davidID);
  List<List<SelectionType>> selectionLists=new ArrayList<List<SelectionType>>();
  selectionLists.add(geneSelectionTypes);
  for (  Integer sampleID : experimentPerspective.getVirtualArray()) {
    selectionLists.add(sampleSelectionManager.getSelectionTypes(experimentPerspective.getIdType(),sampleID));
  }
  colorCalculator.calculateColors(Algorithms.mergeListsToUniqueList(selectionLists));
  float[] topBarColor=colorCalculator.getPrimaryColor().getRGBA();
  float[] bottomBarColor=colorCalculator.getSecondaryColor().getRGBA();
  float[] color=MappedDataRenderer.EVEN_BACKGROUND_COLOR;
  gl.glBegin(GL2.GL_QUADS);
  gl.glColor4fv(color,0);
  gl.glVertex3f(0,0,z);
  gl.glVertex3f(x,0,z);
  gl.glVertex3d(x,0.8f * y,z);
  gl.glVertex3d(0,0.8f * y,z);
  gl.glEnd();
  gl.glBegin(GL.GL_LINE_LOOP);
  gl.glVertex3f(0,0,z);
  gl.glVertex3f(x,0,z);
  gl.glVertex3d(x,0.8f * y,z);
  gl.glVertex3d(0,0.8f * y,z);
  gl.glEnd();
  gl.glBegin(GL2.GL_QUADS);
  gl.glColor4fv(topBarColor,0);
  gl.glVertex3f(0,0,z);
  gl.glColor4fv(bottomBarColor,0);
  gl.glVertex3f(x,0,z);
  gl.glColor3f(bottomBarColor[0] * 0.8f,bottomBarColor[1] * 0.8f,bottomBarColor[2] * 0.8f);
  gl.glVertex3d(x,average.getArithmeticMean() * 0.8f * y,z);
  gl.glColor3f(topBarColor[0] * 0.8f,topBarColor[1] * 0.8f,topBarColor[2] * 0.8f);
  gl.glVertex3d(0,average.getArithmeticMean() * 0.8f * y,z);
  gl.glEnd();
  gl.glColor3f(0.2f,0.2f,0.2f);
  gl.glLineWidth(0.1f);
  gl.glBegin(GL.GL_LINE_LOOP);
  gl.glVertex3f(0,0,z);
  gl.glVertex3f(x,0,z);
  gl.glVertex3d(x,average.getArithmeticMean() * 0.8f * y,z);
  gl.glVertex3d(0,average.getArithmeticMean() * 0.8f * y,z);
  gl.glEnd();
}

Fixed version (ground truth):
@Override public void renderContent(GL2 gl){
  if (resolvedRowID == null || average == null)   return;
  List<SelectionType> geneSelectionTypes=geneSelectionManager.getSelectionTypes(rowID);
  List<List<SelectionType>> selectionLists=new ArrayList<List<SelectionType>>();
  selectionLists.add(geneSelectionTypes);
  for (  Integer sampleID : experimentPerspective.getVirtualArray()) {
    selectionLists.add(sampleSelectionManager.getSelectionTypes(experimentPerspective.getIdType(),sampleID));
  }
  colorCalculator.calculateColors(Algorithms.mergeListsToUniqueList(selectionLists));
  float[] topBarColor=colorCalculator.getPrimaryColor().getRGBA();
  float[] bottomBarColor=colorCalculator.getSecondaryColor().getRGBA();
  float[] color=MappedDataRenderer.EVEN_BACKGROUND_COLOR;
  gl.glBegin(GL2.GL_QUADS);
  gl.glColor4fv(color,0);
  gl.glVertex3f(0,0,z);
  gl.glVertex3f(x,0,z);
  gl.glVertex3d(x,0.8f * y,z);
  gl.glVertex3d(0,0.8f * y,z);
  gl.glEnd();
  gl.glBegin(GL.GL_LINE_LOOP);
  gl.glVertex3f(0,0,z);
  gl.glVertex3f(x,0,z);
  gl.glVertex3d(x,0.8f * y,z);
  gl.glVertex3d(0,0.8f * y,z);
  gl.glEnd();
  gl.glBegin(GL2.GL_QUADS);
  gl.glColor4fv(topBarColor,0);
  gl.glVertex3f(0,0,z);
  gl.glColor4fv(bottomBarColor,0);
  gl.glVertex3f(x,0,z);
  gl.glColor3f(bottomBarColor[0] * 0.8f,bottomBarColor[1] * 0.8f,bottomBarColor[2] * 0.8f);
  gl.glVertex3d(x,average.getArithmeticMean() * 0.8f * y,z);
  gl.glColor3f(topBarColor[0] * 0.8f,topBarColor[1] * 0.8f,topBarColor[2] * 0.8f);
  gl.glVertex3d(0,average.getArithmeticMean() * 0.8f * y,z);
  gl.glEnd();
  gl.glColor3f(0.2f,0.2f,0.2f);
  gl.glLineWidth(0.1f);
  gl.glBegin(GL.GL_LINE_LOOP);
  gl.glVertex3f(0,0,z);
  gl.glVertex3f(x,0,z);
  gl.glVertex3d(x,average.getArithmeticMean() * 0.8f * y,z);
  gl.glVertex3d(0,average.getArithmeticMean() * 0.8f * y,z);
  gl.glEnd();
}