From d8cca2b5580f57655c707c98680cf00677e78165 Mon Sep 17 00:00:00 2001 From: Samuel Tardieu Date: Fri, 17 Jan 2014 22:06:17 +0100 Subject: fix #3549: NPE when exporting invalid cache --- main/src/cgeo/geocaching/export/GpxSerializer.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'main/src/cgeo/geocaching/export/GpxSerializer.java') diff --git a/main/src/cgeo/geocaching/export/GpxSerializer.java b/main/src/cgeo/geocaching/export/GpxSerializer.java index ecc687f..2afed44 100644 --- a/main/src/cgeo/geocaching/export/GpxSerializer.java +++ b/main/src/cgeo/geocaching/export/GpxSerializer.java @@ -90,9 +90,14 @@ public final class GpxSerializer { private void exportBatch(final XmlSerializer gpx, Collection geocodesOfBatch) throws IOException { final Set caches = DataStore.loadCaches(geocodesOfBatch, LoadFlags.LOAD_ALL_DB_ONLY); for (final Geocache cache : caches) { + final Geopoint coords = cache != null ? cache.getCoords() : null; + if (coords == null) { + // Export would be invalid without coordinates. + continue; + } gpx.startTag(PREFIX_GPX, "wpt"); - gpx.attribute("", "lat", Double.toString(cache.getCoords().getLatitude())); - gpx.attribute("", "lon", Double.toString(cache.getCoords().getLongitude())); + gpx.attribute("", "lat", Double.toString(coords.getLatitude())); + gpx.attribute("", "lon", Double.toString(coords.getLongitude())); final Date hiddenDate = cache.getHiddenDate(); if (hiddenDate != null) { -- cgit v1.1