Program: 70823
Project: 70823
Buggy source:
protected GLShaderProgram getColorProgram(GL3 gl,Shading shading,boolean hasNormals,ColorInterpolation cinterp){
  GLSLInfoBuilder builder=new GLSLInfoBuilder();
  builder.setNumLights(myProgManager.numLights());
  builder.setNumClipPlanes(myProgManager.numClipPlanes());
  if (!isSelecting()) {
    if (!isLightingEnabled()) {
      shading=Shading.NONE;
    }
    builder.setLighting(shading);
    if (shading != Shading.NONE) {
      builder.setVertexNormals(true);
    }
    if (isTextureMappingEnabled()) {
      if (myCurrentColorMapProps != null && myCurrentColorMapProps.isEnabled()) {
        builder.enableColorMap(true);
        builder.setVertexTextures(true);
        builder.setTextureColorMixing(myCurrentColorMapProps.getTextureColorMixing());
        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 (isVertexColoringEnabled()) {
      builder.setVertexColorMixing(getVertexColorMixing());
      builder.setColorInterpolation(cinterp);
      builder.setVertexColors(true);
      builder.mixVertexColorDiffuse(true);
      builder.mixVertexColorSpecular(true);
      builder.mixVertexColorEmission(true);
    }
  }
  return myProgManager.getProgram(gl,builder.build());
}

Fixed version (ground truth):
protected GLShaderProgram getColorProgram(GL3 gl,Shading shading,boolean hasNormals,ColorInterpolation cinterp){
  if (isSelecting()) {
    return myProgManager.getSelectionProgram(gl,RenderMode.TRIANGLES);
  }
  GLSLInfoBuilder builder=new GLSLInfoBuilder();
  builder.setNumLights(myProgManager.numLights());
  builder.setNumClipPlanes(myProgManager.numClipPlanes());
  if (!isSelecting()) {
    if (!isLightingEnabled()) {
      shading=Shading.NONE;
    }
    builder.setLighting(shading);
    if (shading != Shading.NONE) {
      builder.setVertexNormals(true);
    }
    if (isTextureMappingEnabled()) {
      if (myCurrentColorMapProps != null && myCurrentColorMapProps.isEnabled()) {
        builder.enableColorMap(true);
        builder.setVertexTextures(true);
        builder.setTextureColorMixing(myCurrentColorMapProps.getTextureColorMixing());
        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 (isVertexColoringEnabled()) {
      builder.setVertexColorMixing(getVertexColorMixing());
      builder.setColorInterpolation(cinterp);
      builder.setVertexColors(true);
      builder.mixVertexColorDiffuse(true);
      builder.mixVertexColorSpecular(true);
      builder.mixVertexColorEmission(true);
    }
  }
  return myProgManager.getProgram(gl,builder.build());
}