Program: 11206
Project: 11206
Buggy source:
@Override public RenderInfo buildVerts(DrawContext dc,RectTile tile,boolean makeSkirts){
  int density=tile.density;
  int numVertices=(density + 3) * (density + 3);
  DoubleBuffer verts=BufferUtil.newDoubleBuffer(numVertices * 3);
  DoubleBuffer positions=BufferUtil.newDoubleBuffer(numVertices * 3);
  ArrayList<LatLon> latlons=this.computeLocations(tile);
  double[] elevations=new double[latlons.size()];
  dc.getGlobe().getElevations(tile.sector,latlons,tile.getResolution(),elevations);
  int iv=0, ip=0;
  double verticalExaggeration=dc.getVerticalExaggeration();
  double exaggeratedMinElevation=makeSkirts ? globe.getMinElevation() * verticalExaggeration : 0;
  LatLon centroid=tile.sector.getCentroid();
  Vec4 refCenter=globe.computePointFromPosition(centroid.getLatitude(),centroid.getLongitude(),0d);
  double minElevation=Double.MAX_VALUE;
  double maxElevation=-Double.MAX_VALUE;
  int ie=0;
  Iterator<LatLon> latLonIter=latlons.iterator();
  for (int j=0; j <= density + 2; j++) {
    for (int i=0; i <= density + 2; i++) {
      LatLon latlon=latLonIter.next();
      double elevation=verticalExaggeration * elevations[ie++];
      positions.put(ip++,latlon.getLatitude().degrees).put(ip++,latlon.getLongitude().degrees).put(ip++,elevation);
      minElevation=Math.min(minElevation,elevation);
      maxElevation=Math.max(maxElevation,elevation);
      if (j == 0 || j >= tile.density + 2 || i == 0 || i >= tile.density + 2) {
        elevation-=exaggeratedMinElevation >= 0 ? exaggeratedMinElevation : -exaggeratedMinElevation;
      }
      Vec4 p=globe.computePointFromPosition(latlon.getLatitude(),latlon.getLongitude(),elevation);
      verts.put(iv++,p.x - refCenter.x).put(iv++,p.y - refCenter.y).put(iv++,p.z - refCenter.z);
    }
  }
  return new RenderInfo(density,verts,positions,minElevation,maxElevation,getTextureCoordinates(density),refCenter);
}

Fixed version (ground truth):
@Override public RenderInfo buildVerts(DrawContext dc,RectTile tile,boolean makeSkirts){
  int density=tile.density;
  int numVertices=(density + 3) * (density + 3);
  DoubleBuffer verts=BufferUtil.newDoubleBuffer(numVertices * 3);
  ArrayList<LatLon> latlons=this.computeLocations(tile);
  double[] elevations=new double[latlons.size()];
  dc.getGlobe().getElevations(tile.sector,latlons,tile.getResolution(),elevations);
  double verticalExaggeration=dc.getVerticalExaggeration();
  double exaggeratedMinElevation=makeSkirts ? globe.getMinElevation() * verticalExaggeration : 0;
  LatLon centroid=tile.sector.getCentroid();
  Vec4 refCenter=globe.computePointFromPosition(centroid.getLatitude(),centroid.getLongitude(),0d);
  double minElevation=Double.MAX_VALUE;
  double maxElevation=-Double.MAX_VALUE;
  int ie=0, iv=0;
  Iterator<LatLon> latLonIter=latlons.iterator();
  for (int j=0; j <= density + 2; j++) {
    for (int i=0; i <= density + 2; i++) {
      LatLon latlon=latLonIter.next();
      double elevation=elevations[ie++];
      minElevation=Math.min(minElevation,elevation);
      maxElevation=Math.max(maxElevation,elevation);
      elevation*=verticalExaggeration;
      if (j == 0 || j >= tile.density + 2 || i == 0 || i >= tile.density + 2) {
        elevation-=exaggeratedMinElevation >= 0 ? exaggeratedMinElevation : -exaggeratedMinElevation;
      }
      Vec4 p=globe.computePointFromPosition(latlon.getLatitude(),latlon.getLongitude(),elevation);
      verts.put(iv++,p.x - refCenter.x).put(iv++,p.y - refCenter.y).put(iv++,p.z - refCenter.z);
    }
  }
  return new RenderInfo(density,verts,elevations,minElevation,maxElevation,getTextureCoordinates(density),refCenter);
}