Program: 70794
Project: 70794
Buggy source:
private void drawSolidPoints(RenderObject robj,int gidx,PointStyle style,double rad){
  int pointCount=robj.numPoints(gidx);
  if (pointCount == 0) {
    return;
  }
  GL2 gl=getGL2();
  maybeUpdateState(gl);
  boolean selecting=isSelecting();
  boolean hasColors=(robj.hasColors() && hasVertexColoring());
  boolean useColors=hasColors && !selecting;
  boolean useHSV=isHSVColorInterpolationEnabled() && !isLightingEnabled();
  if (useColors) {
    gl.glColorMaterial(GL2.GL_FRONT_AND_BACK,GL2.GL_AMBIENT_AND_DIFFUSE);
    if (!myHighlightColorActive) {
      gl.glEnable(GL2.GL_COLOR_MATERIAL);
    }
    if (useHSV) {
      useHSV=setupHSVInterpolation(gl);
    }
  }
  GL2Primitive point=null;
switch (style) {
case CUBE:
    point=getPrimitive(gl,PrimitiveType.CUBE);
  break;
case POINT:
case SPHERE:
point=getPrimitive(gl,PrimitiveType.SPHERE);
}
boolean useDisplayList=!selecting || !hasColors;
GL2VersionedObject gvo=null;
RenderObjectKey key=new RenderObjectKey(robj.getIdentifier(),DrawType.POINTS,gidx);
PointFingerPrint fingerprint=new PointFingerPrint(robj.getVersionInfo(),style,point,(float)rad);
boolean compile=true;
if (useDisplayList) {
gvo=myGLResources.getVersionedObject(key);
if (gvo != null) {
boolean iv=gvo.disposeInvalid(gl);
if (iv == true) {
  System.out.println("String_Node_Str" + gvo);
}
}
if (gvo == null || gvo.disposeInvalid(gl)) {
gvo=myGLResources.allocateVersionedObject(gl,key,fingerprint);
compile=true;
}
 else {
compile=!(gvo.compareExchangeFingerPrint(fingerprint));
}
}
if (compile) {
if (gvo != null) {
gvo.beginCompile(gl);
}
robj.readLock();
int[] points=robj.getPoints(gidx);
for (int i=0; i < pointCount; ++i) {
int vidx=points[i];
if (!selecting && useColors) {
  setVertexColor(gl,robj.getVertexColor(vidx),useHSV);
}
float[] p=robj.getPosition(vidx);
gl.glPushMatrix();
gl.glTranslatef(p[0],p[1],p[2]);
gl.glScaled(rad,rad,rad);
point.draw(gl);
gl.glPopMatrix();
}
robj.readUnlock();
if (gvo != null) {
gvo.endCompile(gl);
gvo.draw(gl);
}
}
 else {
gvo.draw(gl);
}
if (useColors) {
gl.glDisable(GL2.GL_COLOR_MATERIAL);
if (useHSV) {
gl.glUseProgramObjectARB(0);
}
}
}

Fixed version (ground truth):
private void drawSolidPoints(RenderObject robj,int gidx,PointStyle style,double rad){
  int pointCount=robj.numPoints(gidx);
  if (pointCount == 0) {
    return;
  }
  GL2 gl=getGL2();
  maybeUpdateState(gl);
  boolean selecting=isSelecting();
  boolean hasColors=(robj.hasColors() && hasVertexColoring());
  boolean useColors=hasColors && !selecting;
  boolean useHSV=isHSVColorInterpolationEnabled();
  if (useColors) {
    gl.glColorMaterial(GL2.GL_FRONT_AND_BACK,GL2.GL_AMBIENT_AND_DIFFUSE);
    if (!myHighlightColorActive) {
      gl.glEnable(GL2.GL_COLOR_MATERIAL);
    }
    if (useHSV) {
      useHSV=setupHSVInterpolation(gl);
    }
  }
  GL2Primitive point=null;
switch (style) {
case CUBE:
    point=getPrimitive(gl,PrimitiveType.CUBE);
  break;
case POINT:
case SPHERE:
point=getPrimitive(gl,PrimitiveType.SPHERE);
}
boolean useDisplayList=!selecting || !hasColors;
GL2VersionedObject gvo=null;
RenderObjectKey key=new RenderObjectKey(robj.getIdentifier(),DrawType.POINTS,gidx);
PointFingerPrint fingerprint=new PointFingerPrint(robj.getVersionInfo(),style,point,(float)rad);
boolean compile=true;
if (useDisplayList) {
gvo=myGLResources.getVersionedObject(key);
if (gvo != null) {
boolean iv=gvo.disposeInvalid(gl);
if (iv == true) {
  System.out.println("String_Node_Str" + gvo);
}
}
if (gvo == null || gvo.disposeInvalid(gl)) {
gvo=myGLResources.allocateVersionedObject(gl,key,fingerprint);
compile=true;
}
 else {
compile=!(gvo.compareExchangeFingerPrint(fingerprint));
}
}
if (compile) {
if (gvo != null) {
gvo.beginCompile(gl);
}
robj.readLock();
int[] points=robj.getPoints(gidx);
for (int i=0; i < pointCount; ++i) {
int vidx=points[i];
if (!selecting && useColors) {
  setVertexColor(gl,robj.getVertexColor(vidx),useHSV);
}
float[] p=robj.getPosition(vidx);
gl.glPushMatrix();
gl.glTranslatef(p[0],p[1],p[2]);
gl.glScaled(rad,rad,rad);
point.draw(gl);
gl.glPopMatrix();
}
robj.readUnlock();
if (gvo != null) {
gvo.endCompile(gl);
gvo.draw(gl);
}
}
 else {
gvo.draw(gl);
}
if (useColors) {
gl.glDisable(GL2.GL_COLOR_MATERIAL);
if (useHSV) {
gl.glUseProgramObjectARB(0);
}
}
}