Program: 11136
Project: 11136
Buggy source:
protected static void addPlace(Element context,List<Place> places,XPath xpath,Globe globe){
  Place place=new Place();
  places.add(place);
  place.setExcludeFromPlaylist(XMLUtil.getBoolean(context,"String_Node_Str",place.isExcludeFromPlaylist(),xpath));
  place.setLabel(XMLUtil.getText(context,"String_Node_Str",xpath));
  Double lat=XMLUtil.getDouble(context,"String_Node_Str",xpath);
  Double lon=XMLUtil.getDouble(context,"String_Node_Str",xpath);
  LatLon latlon=lat == null || lon == null ? null : LatLon.fromDegrees(lat,lon);
  if (latlon != null) {
    place.setLatLon(latlon);
  }
  place.setMinZoom(XMLUtil.getDouble(context,"String_Node_Str",place.getMinZoom(),xpath));
  place.setMaxZoom(XMLUtil.getDouble(context,"String_Node_Str",place.getMinZoom(),xpath));
  place.setSaveCamera(XMLUtil.getBoolean(context,"String_Node_Str",place.isSaveCamera(),xpath));
  place.setVisible(XMLUtil.getBoolean(context,"String_Node_Str",place.isVisible(),xpath));
  Double elevation=XMLUtil.getDouble(context,"String_Node_Str",xpath);
  Double heading=XMLUtil.getDouble(context,"String_Node_Str",xpath);
  Double pitch=XMLUtil.getDouble(context,"String_Node_Str",xpath);
  Double zoom=XMLUtil.getDouble(context,"String_Node_Str",xpath);
  if (zoom != null && latlon != null) {
    if (elevation == null)     elevation=0d;
    if (pitch == null)     pitch=0d;
    if (heading == null)     heading=0d;
    Position center=new Position(latlon,elevation);
    Matrix transform=OrbitViewInputSupport.computeTransformMatrix(globe,center,Angle.fromDegrees(heading),Angle.fromDegrees(pitch),zoom);
    Position eyePosition=null;
    Matrix modelviewInv=transform.getInverse();
    if (modelviewInv != null) {
      Vec4 eyePoint=Vec4.UNIT_W.transformBy4(modelviewInv);
      eyePosition=globe.computePositionFromPoint(eyePoint);
    }
    Vec4 upVector=Vec4.UNIT_Y.transformBy4(transform);
    place.setEyePosition(eyePosition);
    place.setUpVector(upVector);
  }
}

Fixed version (ground truth):
protected static void addPlace(Element context,List<Place> places,XPath xpath,Globe globe){
  Place place=new Place();
  places.add(place);
  place.setExcludeFromPlaylist(XMLUtil.getBoolean(context,"String_Node_Str",place.isExcludeFromPlaylist(),xpath));
  place.setLabel(XMLUtil.getText(context,"String_Node_Str",xpath));
  Double lat=XMLUtil.getDouble(context,"String_Node_Str",xpath);
  Double lon=XMLUtil.getDouble(context,"String_Node_Str",xpath);
  LatLon latlon=lat == null || lon == null ? null : LatLon.fromDegrees(lat,lon);
  if (latlon != null) {
    place.setLatLon(latlon);
  }
  place.setMinZoom(XMLUtil.getDouble(context,"String_Node_Str",place.getMinZoom(),xpath));
  place.setMaxZoom(XMLUtil.getDouble(context,"String_Node_Str",place.getMaxZoom(),xpath));
  place.setSaveCamera(XMLUtil.getBoolean(context,"String_Node_Str",place.isSaveCamera(),xpath));
  place.setVisible(XMLUtil.getBoolean(context,"String_Node_Str",place.isVisible(),xpath));
  Double elevation=XMLUtil.getDouble(context,"String_Node_Str",xpath);
  Double heading=XMLUtil.getDouble(context,"String_Node_Str",xpath);
  Double pitch=XMLUtil.getDouble(context,"String_Node_Str",xpath);
  Double zoom=XMLUtil.getDouble(context,"String_Node_Str",xpath);
  if (zoom != null && latlon != null) {
    if (elevation == null)     elevation=0d;
    if (pitch == null)     pitch=0d;
    if (heading == null)     heading=0d;
    Position center=new Position(latlon,elevation);
    Matrix transform=OrbitViewInputSupport.computeTransformMatrix(globe,center,Angle.fromDegrees(heading),Angle.fromDegrees(pitch),zoom);
    Matrix modelviewInv=transform.getInverse();
    if (modelviewInv != null) {
      Vec4 eyePoint=Vec4.UNIT_W.transformBy4(modelviewInv);
      Vec4 upVector=Vec4.UNIT_Y.transformBy4(modelviewInv);
      Position eyePosition=globe.computePositionFromPoint(eyePoint);
      place.setEyePosition(eyePosition);
      place.setUpVector(upVector);
    }
  }
}