From bfb0f601991648e16ee19bf57ec2ca813d2972f2 Mon Sep 17 00:00:00 2001 From: Samuel Tardieu Date: Sun, 25 Aug 2013 14:29:12 +0200 Subject: fix #3187: NPE in distance filter --- main/src/cgeo/geocaching/filter/DistanceFilter.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'main/src') diff --git a/main/src/cgeo/geocaching/filter/DistanceFilter.java b/main/src/cgeo/geocaching/filter/DistanceFilter.java index 86b09c7..2f39473 100644 --- a/main/src/cgeo/geocaching/filter/DistanceFilter.java +++ b/main/src/cgeo/geocaching/filter/DistanceFilter.java @@ -24,9 +24,14 @@ class DistanceFilter extends AbstractFilter { @Override public boolean accepts(final Geocache cache) { final Geopoint currentPos = new Geopoint(geo.getLocation()); - final float distance = currentPos.distanceTo(cache.getCoords()); - - return (distance >= minDistance) && (distance <= maxDistance); + final Geopoint coords = cache.getCoords(); + if (coords == null) { + // If a cache has no coordinates, consider it to be out of range. It will + // happen with archived cache. + return false; + } + final float distance = currentPos.distanceTo(coords); + return distance >= minDistance && distance <= maxDistance; } public static class Factory implements IFilterFactory { -- cgit v1.1