Program: 58454
Project: 58454
Buggy source:
/** 
 * Render the Histogram and the labels for the given Axis
 * @param gl
 * @param x
 * @param y
 * @param width
 * @param height
 * @param selected_Axis
 */
private void renderHistogram(GL gl,float x,float y,float width,float height,int selected_Axis){
  float[] fArMappingColor=new float[]{0.0f,0.0f,0.0f};
  renderRectangularSelection(gl,x,y,ScatterPlotRenderStyle.MATRIX_HISTOGRAMM_Z,width,height,fArMappingColor);
  String sLabel=set.get(storageVA.get(selected_Axis)).getLabel();
  float fScaling=renderStyle.getSmallFontScalingFactor() * 0.7f;
  if (isRenderedRemote())   fScaling*=1.5f;
  float fRotation=45;
  gl.glPushAttrib(GL.GL_CURRENT_BIT | GL.GL_LINE_BIT);
  float tmpx=x + width + width / 4;
  float tmpy=y + height / 6;
  gl.glTranslatef(tmpx,tmpy,0);
  gl.glRotatef(fRotation,0,0,1);
  textRenderer.setColor(0,0,0,1);
  textRenderer.begin3DRendering();
  textRenderer.draw3D(gl,sLabel,0,0,ScatterPlotRenderStyle.MATRIX_HISTOGRAMM_Z,fScaling,ScatterPlotRenderStyle.MIN_AXIS_LABEL_TEXT_SIZE);
  textRenderer.end3DRendering();
  gl.glRotatef(-fRotation,0,0,1);
  gl.glTranslatef(-tmpx,-tmpy,0);
  gl.glPopAttrib();
  gl.glLineWidth(0.1f);
  tmpx=x + width + width / 6f;
  tmpy=y + (height / 6);
  if (selected_Axis > 0) {
    gl.glBegin(GL.GL_LINES);
    gl.glVertex3f(x + width,tmpy,ScatterPlotRenderStyle.MATRIX_HISTOGRAMM_Z);
    gl.glVertex3f(tmpx,tmpy,ScatterPlotRenderStyle.MATRIX_HISTOGRAMM_Z);
    gl.glEnd();
  }
  if (selected_Axis < MAX_AXES - 1) {
    gl.glBegin(GL.GL_LINES);
    gl.glVertex3f(x + width,y - (height / 10f),ScatterPlotRenderStyle.MATRIX_HISTOGRAMM_Z);
    gl.glVertex3f(tmpx,tmpy,ScatterPlotRenderStyle.MATRIX_HISTOGRAMM_Z);
    gl.glEnd();
  }
}

Fixed version (ground truth):
/** 
 * Render the Histogram and the labels for the given Axis
 * @param gl
 * @param x
 * @param y
 * @param width
 * @param height
 * @param selected_Axis
 */
private void renderHistogram(GL gl,float x,float y,float width,float height,int selected_Axis){
  float[] fArMappingColor=new float[]{0.0f,0.0f,0.0f};
  renderRectangularSelection(gl,x,y,ScatterPlotRenderStyle.MATRIX_HISTOGRAMM_Z,width,height,fArMappingColor);
  String sLabel=set.get(storageVA.get(selected_Axis)).getLabel();
  float fScaling=renderStyle.getSmallFontScalingFactor() * 0.7f;
  if (isRenderedRemote())   fScaling*=1.5f;
  textRenderer.dispose();
  textRenderer=new CaleydoTextRenderer(new Font("String_Node_Str",Font.PLAIN,24),false);
  Rectangle2D bounds=textRenderer.getScaledBounds(gl,sLabel,fScaling,ScatterPlotRenderStyle.MIN_NUMBER_TEXT_SIZE);
  float fRotation=45;
  float tmpx=x + width + width / 4;
  float tmpy=y + height / 6;
  gl.glTranslatef(tmpx,tmpy,0);
  gl.glRotatef(fRotation,0,0,1);
  textRenderer.setColor(0,0,0,1);
  textRenderer.begin3DRendering();
  textRenderer.draw3D(gl,sLabel,0,0,ScatterPlotRenderStyle.MATRIX_HISTOGRAMM_Z,fScaling,ScatterPlotRenderStyle.MIN_AXIS_LABEL_TEXT_SIZE);
  textRenderer.end3DRendering();
  gl.glRotatef(-fRotation,0,0,1);
  gl.glTranslatef(-tmpx,-tmpy,0);
  gl.glLineWidth(0.1f);
  tmpx=x + width + width / 6f;
  tmpy=y + (height / 6);
  if (selected_Axis > 0) {
    gl.glBegin(GL.GL_LINES);
    gl.glVertex3f(x + width,tmpy,ScatterPlotRenderStyle.MATRIX_HISTOGRAMM_Z);
    gl.glVertex3f(tmpx,tmpy,ScatterPlotRenderStyle.MATRIX_HISTOGRAMM_Z);
    gl.glEnd();
  }
  if (selected_Axis < MAX_AXES - 1) {
    gl.glBegin(GL.GL_LINES);
    gl.glVertex3f(x + width,y - (height / 10f),ScatterPlotRenderStyle.MATRIX_HISTOGRAMM_Z);
    gl.glVertex3f(tmpx,tmpy,ScatterPlotRenderStyle.MATRIX_HISTOGRAMM_Z);
    gl.glEnd();
  }
}