Program: 58569
Project: 58569
Buggy source:
private void DrawPointPrimitive(GL gl,float x,float y,float z,float[] fArMappingColor,float fOpacity,int iContentIndex,float scale){
  EScatterPointType type=POINTSTYLE;
  float fullPoint=POINTSIZE * scale;
  float halfPoint=(fullPoint / 2.0f);
  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);
  }
  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();
}

Fixed version (ground truth):
private void DrawPointPrimitive(GL gl,float x,float y,float z,float[] fArMappingColor,float fOpacity,int iContentIndex,float scale){
  EScatterPointType type=POINTSTYLE;
  float fullPoint=POINTSIZE * scale;
  float halfPoint=(fullPoint / 2.0f);
  int iPickingID=pickingManager.getPickingID(iUniqueID,EPickingType.SCATTER_POINT_SELECTION,iContentIndex);
  gl.glColor3f(fArMappingColor[0],fArMappingColor[1],fArMappingColor[2]);
  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();
}