Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayerTest.java	(revision 19446)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayerTest.java	(revision 19455)
@@ -3,9 +3,12 @@
 
 import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
+import java.util.Arrays;
 import java.util.Collections;
 
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
+import org.openstreetmap.josm.data.gpx.TimeSource;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
@@ -13,4 +16,5 @@
 import org.openstreetmap.josm.testutils.annotations.Main;
 import org.openstreetmap.josm.testutils.annotations.ThreadSync;
+import org.openstreetmap.josm.tools.date.DateUtils;
 
 /**
@@ -42,3 +46,19 @@
         assertThrows(IllegalArgumentException.class, () -> geoImageLayer.mergeFrom(osmDataLayer));
     }
+
+    /**
+     * Test that {@link GeoImageLayer#getSortedImgList} filters images without ExifGpsTime
+     */
+    @Test
+    void testMissingGPSTimeStamp() {
+        ImageEntry i1, i2;
+        i1 = new ImageEntry();
+        i1.setExifGpsTime(DateUtils.parseInstant("2016:01:03 12:00:00"));
+        i2 = new ImageEntry();
+        i2.setExifTime(DateUtils.parseInstant("2016:01:03 12:00:01"));
+
+        GeoImageLayer geoGpsImageLayer = new GeoImageLayer(Arrays.asList(i1, i2), null);
+        assertEquals(1, geoGpsImageLayer.getSortedImgList(false, false, TimeSource.EXIFGPSTIME).size());
+    }
+
 }
