Program: 58574
Project: 58574
Buggy source:
private void DrawPointPrimitive(GL gl,float x,float y,float z,float[] fArMappingColor,float fOpacity,int iContentIndex){
  EScatterPointType type=POINTSTYLE;
  float halfPoint=POINTSIZE / 2.0f;
  float fullPoint=POINTSIZE;
  int iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.SCATTER_POINT_SELECTION,iContentIndex);
  gl.glColor3f(fArMappingColor[0],fArMappingColor[1],fArMappingColor[2]);
  int test=elementSelectionManager.getNumberOfElements(ESelectionType.SELECTION);
  int test2=elementSelectionManager.getNumberOfElements(ESelectionType.MOUSE_OVER);
  if (elementSelectionManager.checkStatus(ESelectionType.SELECTION,iContentIndex)) {
    z=+1.0f;
    gl.glColor3f(1.0f,0.1f,0.5f);
  }
  if (elementSelectionManager.checkStatus(ESelectionType.MOUSE_OVER,iContentIndex)) {
    z=+2.0f;
    fullPoint=0.03f;
    gl.glColor3f(1.0f,1.0f,0.0f);
    type=EScatterPointType.DISK;
  }
  gl.glPushName(iPickingID);
switch (type) {
case BOX:
{
      gl.glBegin(GL.GL_POLYGON);
      gl.glVertex3f(x - halfPoint,y - halfPoint,z);
      gl.glVertex3f(x - halfPoint,y + halfPoint,z);
      gl.glVertex3f(x + halfPoint,y + halfPoint,z);
      gl.glVertex3f(x + halfPoint,y - halfPoint,z);
      gl.glEnd();
      break;
    }
case POINT:
{
    gl.glPointSize(POINTSIZE * 20.0f);
    gl.glBegin(GL.GL_POINTS);
    gl.glVertex3f(x,y,z);
    gl.glEnd();
    break;
  }
case CROSS:
{
  gl.glLineWidth(1.0f);
  gl.glBegin(GL.GL_LINES);
  gl.glVertex3f(x - halfPoint,y - halfPoint,z);
  gl.glVertex3f(x + halfPoint,y + halfPoint,z);
  gl.glVertex3f(x - halfPoint,y + halfPoint,z);
  gl.glVertex3f(x + halfPoint,y - halfPoint,z);
  gl.glEnd();
}
break;
case CIRCLE:
{
float angle;
float PI=(float)Math.PI;
gl.glLineWidth(1.0f);
gl.glBegin(GL.GL_LINE_LOOP);
for (int i=0; i < 10; i++) {
angle=(i * 2 * PI) / 10;
gl.glVertex3f(x + (float)(Math.cos(angle) * fullPoint),y + (float)(Math.sin(angle) * fullPoint),z);
}
gl.glEnd();
}
break;
case DISK:
{
float angle;
float PI=(float)Math.PI;
gl.glBegin(GL.GL_POLYGON);
for (int i=0; i < 10; i++) {
angle=(i * 2 * PI) / 10;
gl.glVertex3f(x + (float)(Math.cos(angle) * fullPoint),y + (float)(Math.sin(angle) * fullPoint),z);
}
gl.glEnd();
}
break;
default :
}
gl.glPopName();
}

Fixed version (ground truth):
private void DrawPointPrimitive(GL gl,float x,float y,float z,float[] fArMappingColor,float fOpacity,int iContentIndex){
  EScatterPointType type=POINTSTYLE;
  float halfPoint=POINTSIZE / 2.0f;
  float fullPoint=POINTSIZE;
  int iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.SCATTER_POINT_SELECTION,iContentIndex);
  gl.glColor3f(fArMappingColor[0],fArMappingColor[1],fArMappingColor[2]);
  if (elementSelectionManager.checkStatus(ESelectionType.SELECTION,iContentIndex)) {
    z=+1.0f;
    gl.glColor3f(1.0f,0.1f,0.5f);
  }
  if (elementSelectionManager.checkStatus(ESelectionType.MOUSE_OVER,iContentIndex)) {
    z=+1.5f;
    fullPoint=POINTSIZE * 2f;
    gl.glColor3f(1.0f,1.0f,0.0f);
    float angle;
    float PI=(float)Math.PI;
    gl.glBegin(GL.GL_POLYGON);
    for (int i=0; i < 20; i++) {
      angle=(i * 2 * PI) / 10;
      gl.glVertex3f(x + (float)(Math.cos(angle) * fullPoint),y + (float)(Math.sin(angle) * fullPoint),z);
    }
    gl.glEnd();
    z=+2.0f;
    gl.glColor3f(0.0f,0.0f,0.0f);
    gl.glPointSize(POINTSIZE * 50.0f);
    gl.glBegin(GL.GL_POINTS);
    gl.glVertex3f(x,y,z);
    gl.glEnd();
    z=+2.5f;
    gl.glColor3f(fArMappingColor[0],fArMappingColor[1],fArMappingColor[2]);
    halfPoint=POINTSIZE * 0.75f;
    fullPoint=POINTSIZE * 1.5f;
  }
  gl.glPushName(iPickingID);
switch (type) {
case BOX:
{
      gl.glBegin(GL.GL_POLYGON);
      gl.glVertex3f(x - halfPoint,y - halfPoint,z);
      gl.glVertex3f(x - halfPoint,y + halfPoint,z);
      gl.glVertex3f(x + halfPoint,y + halfPoint,z);
      gl.glVertex3f(x + halfPoint,y - halfPoint,z);
      gl.glEnd();
      break;
    }
case POINT:
{
    gl.glPointSize(fullPoint * 50.0f);
    gl.glBegin(GL.GL_POINTS);
    gl.glVertex3f(x,y,z);
    gl.glEnd();
    break;
  }
case CROSS:
{
  gl.glLineWidth(1.0f);
  gl.glBegin(GL.GL_LINES);
  gl.glVertex3f(x - halfPoint,y - halfPoint,z);
  gl.glVertex3f(x + halfPoint,y + halfPoint,z);
  gl.glVertex3f(x - halfPoint,y + halfPoint,z);
  gl.glVertex3f(x + halfPoint,y - halfPoint,z);
  gl.glEnd();
}
break;
case CIRCLE:
{
float angle;
float PI=(float)Math.PI;
gl.glLineWidth(1.0f);
gl.glBegin(GL.GL_LINE_LOOP);
for (int i=0; i < 10; i++) {
angle=(i * 2 * PI) / 10;
gl.glVertex3f(x + (float)(Math.cos(angle) * fullPoint),y + (float)(Math.sin(angle) * fullPoint),z);
}
gl.glEnd();
}
break;
case DISK:
{
float angle;
float PI=(float)Math.PI;
gl.glBegin(GL.GL_POLYGON);
for (int i=0; i < 10; i++) {
angle=(i * 2 * PI) / 10;
gl.glVertex3f(x + (float)(Math.cos(angle) * fullPoint),y + (float)(Math.sin(angle) * fullPoint),z);
}
gl.glEnd();
}
break;
default :
}
gl.glPopName();
}