Program: 186310
Project: 186310
Buggy source:
@Override public void renderPart(Camera camera,Projection projection,double xStart,double xEnd,double yStart,double yEnd){
  if (renderer == null) {
    throw new IllegalStateException("String_Node_Str");
  }
  applyProjectionMatricesForPart(pmvMatrix,projection,xStart,xEnd,yStart,yEnd);
  applyCameraMatrices(pmvMatrix,camera);
  if (renderingParameters.useShadowMaps) {
    shadowMapShader.useShader();
    shadowMapShader.preparePMVMatrix(globalLightingParameters,pmvMatrix,rendererShader.getBoundingBox());
    rendererShader.setShader(shadowMapShader);
    rendererShader.render(camera,projection);
    shadowMapShader.disableShader();
  }
  defaultShader.useShader();
  defaultShader.loadDefaults();
  if (showShadowPerspective)   defaultShader.setPMVMatrix(shadowMapShader.getPMVMatrix());
 else   defaultShader.setPMVMatrix(pmvMatrix);
  applyRenderingParameters(gl,renderingParameters);
  applyLightingParameters(defaultShader,globalLightingParameters);
  if (renderingParameters.useShadowMaps) {
    defaultShader.bindShadowMap(shadowMapShader.getShadowMapHandle());
    defaultShader.setShadowMatrix(shadowMapShader.getPMVMatrix());
  }
  rendererShader.setShader(defaultShader);
  rendererShader.render(camera,projection);
  defaultShader.disableShader();
  nonAreaShader.useShader();
  nonAreaShader.loadDefaults();
  nonAreaShader.setPMVMatrix(pmvMatrix);
  nonAreaRenderer.render();
  nonAreaShader.disableShader();
  if (renderingParameters.useShadowVolumes) {
    gl.glDrawBuffer(GL.GL_NONE);
    gl.glEnable(GL.GL_STENCIL_TEST);
    gl.glDepthMask(false);
    gl.glEnable(GL3.GL_DEPTH_CLAMP);
    gl.glDisable(GL_CULL_FACE);
    gl.glStencilFunc(GL.GL_ALWAYS,0,0xff);
    gl.glStencilOpSeparate(GL.GL_BACK,GL.GL_KEEP,GL.GL_INCR_WRAP,GL.GL_KEEP);
    gl.glStencilOpSeparate(GL.GL_FRONT,GL.GL_KEEP,GL.GL_DECR_WRAP,GL.GL_KEEP);
    shadowVolumeShader.useShader();
    shadowVolumeShader.setPMVMatrix(pmvMatrix);
    rendererShadowVolume.setShader(shadowVolumeShader);
    rendererShadowVolume.render(camera,projection);
    shadowVolumeShader.disableShader();
    gl.glDepthMask(true);
    gl.glClear(GL.GL_DEPTH_BUFFER_BIT);
    gl.glDisable(GL3.GL_DEPTH_CLAMP);
    gl.glEnable(GL_CULL_FACE);
    gl.glDrawBuffer(GL_BACK);
    gl.glStencilFunc(GL.GL_NOTEQUAL,0x0,0xFF);
    gl.glStencilOpSeparate(GL.GL_BACK,GL.GL_KEEP,GL.GL_KEEP,GL.GL_KEEP);
    gl.glStencilOpSeparate(GL.GL_FRONT,GL.GL_KEEP,GL.GL_KEEP,GL.GL_KEEP);
    applyRenderingParameters(gl,renderingParameters);
    defaultShader.useShader();
    defaultShader.loadDefaults();
    defaultShader.setPMVMatrix(pmvMatrix);
    defaultShader.setShadowed(true);
    rendererShader.setShader(defaultShader);
    rendererShader.render(camera,projection);
    defaultShader.setShadowed(false);
    defaultShader.disableShader();
    nonAreaShader.useShader();
    nonAreaShader.loadDefaults();
    nonAreaShader.setPMVMatrix(pmvMatrix);
    nonAreaRenderer.render();
    nonAreaShader.disableShader();
  }
}

Fixed version (ground truth):
@Override public void renderPart(Camera camera,Projection projection,double xStart,double xEnd,double yStart,double yEnd){
  if (renderer == null) {
    throw new IllegalStateException("String_Node_Str");
  }
  applyProjectionMatricesForPart(pmvMatrix,projection,xStart,xEnd,yStart,yEnd);
  applyCameraMatrices(pmvMatrix,camera);
  if (renderingParameters.useShadowMaps) {
    shadowMapShader.useShader();
    shadowMapShader.preparePMVMatrix(globalLightingParameters,pmvMatrix,rendererShader.getBoundingBox());
    rendererShader.setShader(shadowMapShader);
    rendererShader.render(camera,projection);
    shadowMapShader.disableShader();
  }
  defaultShader.useShader();
  defaultShader.loadDefaults();
  if (showShadowPerspective)   defaultShader.setPMVMatrix(shadowMapShader.getPMVMatrix());
 else   defaultShader.setPMVMatrix(pmvMatrix);
  applyRenderingParameters(gl,renderingParameters);
  applyLightingParameters(defaultShader,globalLightingParameters);
  if (renderingParameters.useShadowMaps) {
    defaultShader.bindShadowMap(shadowMapShader.getShadowMapHandle());
    defaultShader.setShadowMatrix(shadowMapShader.getPMVMatrix());
  }
  rendererShader.setShader(defaultShader);
  rendererShader.render(camera,projection);
  defaultShader.disableShader();
  nonAreaShader.useShader();
  nonAreaShader.loadDefaults();
  nonAreaShader.setPMVMatrix(pmvMatrix);
  nonAreaRenderer.render();
  nonAreaShader.disableShader();
  if (renderingParameters.useShadowVolumes) {
    gl.glDrawBuffer(GL.GL_NONE);
    gl.glEnable(GL.GL_STENCIL_TEST);
    gl.glDepthMask(false);
    gl.glEnable(GL3.GL_DEPTH_CLAMP);
    gl.glDisable(GL_CULL_FACE);
    gl.glStencilFunc(GL.GL_ALWAYS,0,0xff);
    gl.glStencilOpSeparate(GL.GL_BACK,GL.GL_KEEP,GL.GL_INCR_WRAP,GL.GL_KEEP);
    gl.glStencilOpSeparate(GL.GL_FRONT,GL.GL_KEEP,GL.GL_DECR_WRAP,GL.GL_KEEP);
    shadowVolumeShader.useShader();
    shadowVolumeShader.setPMVMatrix(pmvMatrix);
    rendererShadowVolume.setShader(shadowVolumeShader);
    rendererShadowVolume.render(camera,projection);
    shadowVolumeShader.disableShader();
    gl.glDepthMask(true);
    gl.glClear(GL.GL_DEPTH_BUFFER_BIT);
    gl.glDisable(GL3.GL_DEPTH_CLAMP);
    gl.glEnable(GL_CULL_FACE);
    gl.glDrawBuffer(GL_BACK);
    gl.glStencilFunc(GL.GL_NOTEQUAL,0x0,0xFF);
    gl.glStencilOpSeparate(GL.GL_BACK,GL.GL_KEEP,GL.GL_KEEP,GL.GL_KEEP);
    gl.glStencilOpSeparate(GL.GL_FRONT,GL.GL_KEEP,GL.GL_KEEP,GL.GL_KEEP);
    applyRenderingParameters(gl,renderingParameters);
    defaultShader.useShader();
    defaultShader.loadDefaults();
    defaultShader.setPMVMatrix(pmvMatrix);
    defaultShader.setShadowed(true);
    rendererShader.setShader(defaultShader);
    rendererShader.render(camera,projection);
    defaultShader.setShadowed(false);
    defaultShader.disableShader();
    nonAreaShader.useShader();
    nonAreaShader.loadDefaults();
    nonAreaShader.setPMVMatrix(pmvMatrix);
    nonAreaRenderer.render();
    nonAreaShader.disableShader();
    gl.glDisable(GL.GL_STENCIL_TEST);
  }
}