Program: 30486
Project: 30486
Buggy source:
private void putFace(EnumFacing face,float x1,float y1,float z1,float x2,float y2,float z2){
  TextureAtlasSprite texture=textures.get(face);
  UnpackedBakedQuad.Builder builder=new UnpackedBakedQuad.Builder(format);
  builder.setTexture(texture);
  builder.setQuadOrientation(face);
  UvVector uv=new UvVector();
  Vector4f customUv=this.customUv.get(face);
  if (customUv != null) {
    uv.u1=texture.getInterpolatedU(customUv.x);
    uv.v1=texture.getInterpolatedV(customUv.y);
    uv.u2=texture.getInterpolatedU(customUv.z);
    uv.v2=texture.getInterpolatedV(customUv.w);
  }
 else {
    uv=getDefaultUv(face,texture,x1,y1,z1,x2,y2,z2);
  }
switch (face) {
case DOWN:
    putVertexTR(builder,face,x2,y1,z1,uv);
  putVertexBR(builder,face,x2,y1,z2,uv);
putVertexBL(builder,face,x1,y1,z2,uv);
putVertexTL(builder,face,x1,y1,z1,uv);
break;
case UP:
putVertexTL(builder,face,x1,y2,z1,uv);
putVertexBL(builder,face,x1,y2,z2,uv);
putVertexBR(builder,face,x2,y2,z2,uv);
putVertexTR(builder,face,x2,y2,z1,uv);
break;
case NORTH:
putVertexTL(builder,face,x2,y2,z1,uv);
putVertexTL(builder,face,x2,y1,z1,uv);
putVertexTL(builder,face,x1,y1,z1,uv);
putVertexTL(builder,face,x1,y2,z1,uv);
break;
case SOUTH:
putVertexBL(builder,face,x1,y2,z2,uv);
putVertexTL(builder,face,x1,y1,z2,uv);
putVertexTR(builder,face,x2,y1,z2,uv);
putVertexBR(builder,face,x2,y2,z2,uv);
break;
case WEST:
putVertexTL(builder,face,x1,y1,z1,uv);
putVertexTR(builder,face,x1,y1,z2,uv);
putVertexBR(builder,face,x1,y2,z2,uv);
putVertexBL(builder,face,x1,y2,z1,uv);
break;
case EAST:
putVertexBR(builder,face,x2,y2,z1,uv);
putVertexBL(builder,face,x2,y2,z2,uv);
putVertexTL(builder,face,x2,y1,z2,uv);
putVertexTR(builder,face,x2,y1,z1,uv);
break;
}
int[] vertexData=builder.build().getVertexData();
output.add(new BakedQuad(vertexData,-1,face,texture,true,format));
}

Fixed version (ground truth):
private void putFace(EnumFacing face,float x1,float y1,float z1,float x2,float y2,float z2){
  TextureAtlasSprite texture=textures.get(face);
  UnpackedBakedQuad.Builder builder=new UnpackedBakedQuad.Builder(format);
  builder.setTexture(texture);
  builder.setQuadOrientation(face);
  UvVector uv=new UvVector();
  Vector4f customUv=this.customUv.get(face);
  if (customUv != null) {
    uv.u1=texture.getInterpolatedU(customUv.x);
    uv.v1=texture.getInterpolatedV(customUv.y);
    uv.u2=texture.getInterpolatedU(customUv.z);
    uv.v2=texture.getInterpolatedV(customUv.w);
  }
 else {
    uv=getDefaultUv(face,texture,x1,y1,z1,x2,y2,z2);
  }
switch (face) {
case DOWN:
    putVertexTR(builder,face,x2,y1,z1,uv);
  putVertexBR(builder,face,x2,y1,z2,uv);
putVertexBL(builder,face,x1,y1,z2,uv);
putVertexTL(builder,face,x1,y1,z1,uv);
break;
case UP:
putVertexTL(builder,face,x1,y2,z1,uv);
putVertexBL(builder,face,x1,y2,z2,uv);
putVertexBR(builder,face,x2,y2,z2,uv);
putVertexTR(builder,face,x2,y2,z1,uv);
break;
case NORTH:
putVertexBR(builder,face,x2,y2,z1,uv);
putVertexTR(builder,face,x2,y1,z1,uv);
putVertexTL(builder,face,x1,y1,z1,uv);
putVertexBL(builder,face,x1,y2,z1,uv);
break;
case SOUTH:
putVertexBL(builder,face,x1,y2,z2,uv);
putVertexTL(builder,face,x1,y1,z2,uv);
putVertexTR(builder,face,x2,y1,z2,uv);
putVertexBR(builder,face,x2,y2,z2,uv);
break;
case WEST:
putVertexTL(builder,face,x1,y1,z1,uv);
putVertexTR(builder,face,x1,y1,z2,uv);
putVertexBR(builder,face,x1,y2,z2,uv);
putVertexBL(builder,face,x1,y2,z1,uv);
break;
case EAST:
putVertexBR(builder,face,x2,y2,z1,uv);
putVertexBL(builder,face,x2,y2,z2,uv);
putVertexTL(builder,face,x2,y1,z2,uv);
putVertexTR(builder,face,x2,y1,z1,uv);
break;
}
int[] vertexData=builder.build().getVertexData();
output.add(new BakedQuad(vertexData,-1,face,texture,true,format));
}