Program: 70829
Project: 70829
Buggy source:
protected GLShaderProgram getPointsProgram(GL3 gl,PointStyle style,RenderObjectState robj){
  GLSLInfoBuilder builder=new GLSLInfoBuilder();
  builder.setNumLights(myProgManager.numLights());
  builder.setNumClipPlanes(myProgManager.numClipPlanes());
switch (style) {
case SPHERE:
case CUBE:
    builder.setInstancedRendering(InstancedRendering.POINTS);
  builder.setVertexNormals(true);
break;
case POINT:
default :
builder.setInstancedRendering(InstancedRendering.NONE);
builder.setRoundPoints(true);
if (robj.hasNormals()) {
builder.setVertexNormals(true);
}
 else {
builder.setVertexNormals(false);
}
break;
}
if (!isSelecting()) {
Shading shading=isLightingEnabled() ? getShading() : Shading.NONE;
if (style == PointStyle.POINT) {
shading=Shading.NONE;
}
builder.setLighting(shading);
if (isTextureMappingEnabled()) {
if (myCurrentColorMapProps != null && myCurrentColorMapProps.isEnabled() && !mySelectedColorActive) {
builder.enableColorMap(true);
builder.setTextureColorMixing(myCurrentColorMapProps.getTextureColorMixing());
builder.setVertexTextures(true);
builder.mixTextureColorDiffuse(myCurrentColorMapProps.getDiffuseColoring());
builder.mixTextureColorSpecular(myCurrentColorMapProps.getSpecularColoring());
builder.mixTextureColorEmission(myCurrentColorMapProps.getDiffuseColoring());
}
if (myCurrentNormalMapProps != null && myCurrentNormalMapProps.isEnabled()) {
builder.enableNormalMap(true);
builder.setVertexTextures(true);
}
if (myCurrentBumpMapProps != null && myCurrentBumpMapProps.isEnabled()) {
builder.enableBumpMap(true);
builder.setVertexTextures(true);
}
}
if (!robj.hasColors() || !isVertexColoringEnabled() || mySelectedColorActive) {
builder.setColorInterpolation(ColorInterpolation.NONE);
builder.setVertexColors(false);
}
 else {
if (isHSVColorInterpolationEnabled()) {
builder.setColorInterpolation(ColorInterpolation.HSV);
}
 else {
builder.setColorInterpolation(ColorInterpolation.RGB);
}
builder.setVertexColorMixing(getVertexColorMixing());
builder.setVertexColors(true);
}
}
return myProgManager.getProgram(gl,builder.build());
}

Fixed version (ground truth):
protected GLShaderProgram getPointsProgram(GL3 gl,PointStyle style,RenderObjectState robj){
  if (isSelecting()) {
    if (style == PointStyle.POINT) {
      return myProgManager.getSelectionProgram(gl,RenderMode.POINTS);
    }
 else {
      return myProgManager.getSelectionProgram(gl,RenderMode.INSTANCED_POINTS);
    }
  }
  GLSLInfoBuilder builder=new GLSLInfoBuilder();
  builder.setNumLights(myProgManager.numLights());
  builder.setNumClipPlanes(myProgManager.numClipPlanes());
switch (style) {
case SPHERE:
case CUBE:
    builder.setInstancedRendering(InstancedRendering.POINTS);
  builder.setVertexNormals(true);
break;
case POINT:
default :
builder.setInstancedRendering(InstancedRendering.NONE);
builder.setRoundPoints(true);
if (robj.hasNormals()) {
builder.setVertexNormals(true);
}
 else {
builder.setVertexNormals(false);
}
break;
}
if (!isSelecting()) {
Shading shading=isLightingEnabled() ? getShading() : Shading.NONE;
if (style == PointStyle.POINT) {
shading=Shading.NONE;
}
builder.setLighting(shading);
if (isTextureMappingEnabled()) {
if (myCurrentColorMapProps != null && myCurrentColorMapProps.isEnabled() && !mySelectedColorActive) {
builder.enableColorMap(true);
builder.setTextureColorMixing(myCurrentColorMapProps.getTextureColorMixing());
builder.setVertexTextures(true);
builder.mixTextureColorDiffuse(myCurrentColorMapProps.getDiffuseColoring());
builder.mixTextureColorSpecular(myCurrentColorMapProps.getSpecularColoring());
builder.mixTextureColorEmission(myCurrentColorMapProps.getDiffuseColoring());
}
if (myCurrentNormalMapProps != null && myCurrentNormalMapProps.isEnabled()) {
builder.enableNormalMap(true);
builder.setVertexTextures(true);
}
if (myCurrentBumpMapProps != null && myCurrentBumpMapProps.isEnabled()) {
builder.enableBumpMap(true);
builder.setVertexTextures(true);
}
}
if (!robj.hasColors() || !isVertexColoringEnabled() || mySelectedColorActive) {
builder.setColorInterpolation(ColorInterpolation.NONE);
builder.setVertexColors(false);
}
 else {
if (isHSVColorInterpolationEnabled()) {
builder.setColorInterpolation(ColorInterpolation.HSV);
}
 else {
builder.setColorInterpolation(ColorInterpolation.RGB);
}
builder.setVertexColorMixing(getVertexColorMixing());
builder.setVertexColors(true);
}
}
return myProgManager.getProgram(gl,builder.build());
}