Program: 58698
Project: 58698
Buggy source:
private void buildDisplayList(final GL gl,int iGLDisplayListIndex){
  gl.glNewList(iGLDisplayListIndex,GL.GL_COMPILE);
  if (tree == null) {
    iAlCutOffClusters.clear();
    iAlClusterNodes.clear();
    if (bRenderGeneTree == true) {
      if (set.getClusteredTreeGenes() != null) {
        tree=set.getClusteredTreeGenes();
        groupList=new GroupList(1);
        currentRootNode=tree.getRoot();
      }
 else       renderSymbol(gl);
    }
 else {
      if (set.getClusteredTreeExps() != null) {
        tree=set.getClusteredTreeExps();
        groupList=new GroupList(1);
      }
 else       renderSymbol(gl);
    }
  }
  if (tree != null) {
    if (bHasFrustumChanged || bRedrawDendrogram) {
      if (bRenderGeneTree) {
        xGlobalMax=viewFrustum.getWidth() - 0.2f;
        fSampleHeight=(viewFrustum.getHeight() - 1f) / tree.getRoot().getNrElements();
        fLevelWidth=(viewFrustum.getWidth() - 1f) / tree.getRoot().getDepth();
        yPosInit=viewFrustum.getHeight() - 0.4f;
      }
 else {
        yGlobalMin=0.1f;
        fSampleWidth=(viewFrustum.getWidth() - 1f) / tree.getRoot().getNrElements();
        fLevelHeight=(viewFrustum.getHeight() - 1f) / tree.getRoot().getDepth();
        xPosInit=0.4f;
      }
      determinePositions();
      bRedrawDendrogram=false;
      bHasFrustumChanged=false;
    }
    gl.glLineWidth(0.1f);
    if (bRenderGeneTree) {
      gl.glTranslatef(0.1f,0,0);
      renderDendrogramGenes(gl,currentRootNode,1);
    }
 else {
      gl.glTranslatef(0,0.1f,0);
      renderDendrogramExperiments(gl,tree.getRoot(),1);
    }
    if (bIsRenderedRemote == false) {
      renderSelections(gl,tree.getRoot());
      renderCut(gl);
    }
    if (bRenderGeneTree)     gl.glTranslatef(-0.1f,0,0);
 else     gl.glTranslatef(0,-0.1f,0);
  }
  gl.glEndList();
}

Fixed version (ground truth):
private void buildDisplayList(final GL gl,int iGLDisplayListIndex){
  gl.glNewList(iGLDisplayListIndex,GL.GL_COMPILE);
  if (tree == null) {
    iAlCutOffClusters.clear();
    iAlClusterNodes.clear();
    if (bRenderGeneTree == true) {
      if (set.getClusteredTreeGenes() != null) {
        tree=set.getClusteredTreeGenes();
        groupList=new GroupList(1);
        currentRootNode=tree.getRoot();
      }
 else       renderSymbol(gl);
    }
 else {
      if (set.getClusteredTreeExps() != null) {
        tree=set.getClusteredTreeExps();
        groupList=new GroupList(1);
      }
 else       renderSymbol(gl);
    }
  }
  if (tree != null) {
    if (bHasFrustumChanged || bRedrawDendrogram) {
      if (bRenderGeneTree) {
        xGlobalMax=viewFrustum.getWidth() - 0.2f;
        fSampleHeight=(viewFrustum.getHeight() - 1f) / tree.getRoot().getNrElements();
        fLevelWidth=(viewFrustum.getWidth() - 2f) / tree.getRoot().getDepth();
        yPosInit=viewFrustum.getHeight() - 0.4f;
      }
 else {
        yGlobalMin=0.1f;
        fSampleWidth=(viewFrustum.getWidth() - 1f) / tree.getRoot().getNrElements();
        fLevelHeight=(viewFrustum.getHeight() - 2f) / tree.getRoot().getDepth();
        xPosInit=0.4f;
      }
      determinePositions();
      bRedrawDendrogram=false;
      bHasFrustumChanged=false;
    }
    gl.glLineWidth(0.1f);
    if (bRenderGeneTree) {
      gl.glTranslatef(0.1f,0,0);
      renderDendrogramGenes(gl,currentRootNode,1);
    }
 else {
      gl.glTranslatef(0,0.1f,0);
      renderDendrogramExperiments(gl,tree.getRoot(),1);
    }
    if (bIsRenderedRemote == false) {
      renderSelections(gl,tree.getRoot());
      renderCut(gl);
    }
    if (bRenderGeneTree)     gl.glTranslatef(-0.1f,0,0);
 else     gl.glTranslatef(0,-0.1f,0);
  }
  gl.glEndList();
}