Index: src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java	(revision 17579)
+++ src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java	(working copy)
@@ -105,7 +105,7 @@
 
     @Override
     public int hashCode() {
-        return Objects.hash(super.hashCode(), thumbnail);
+        return Objects.hash(super.hashCode(), thumbnail, dataSet);
     }
 
     @Override
Index: test/unit/org/openstreetmap/josm/gui/layer/geoimage/ImageEntryTest.java
===================================================================
--- test/unit/org/openstreetmap/josm/gui/layer/geoimage/ImageEntryTest.java	(revision 17579)
+++ test/unit/org/openstreetmap/josm/gui/layer/geoimage/ImageEntryTest.java	(working copy)
@@ -4,9 +4,11 @@
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 import java.io.File;
+import java.util.ArrayList;
 
 import org.junit.jupiter.api.Test;
 import org.openstreetmap.josm.TestUtils;
+import org.openstreetmap.josm.data.ImageData;
 import org.openstreetmap.josm.data.gpx.GpxImageEntry;
 
 import nl.jqno.equalsverifier.EqualsVerifier;
@@ -34,8 +36,11 @@
     void testEqualsContract() {
         TestUtils.assumeWorkingEqualsVerifier();
         EqualsVerifier.forClass(ImageEntry.class).usingGetClass()
-            .suppress(Warning.NONFINAL_FIELDS)
-            .withPrefabValues(GpxImageEntry.class, new GpxImageEntry(new File("foo")), new GpxImageEntry(new File("bar")))
+          .suppress(Warning.NONFINAL_FIELDS)
+          .withPrefabValues(GpxImageEntry.class,
+            new GpxImageEntry(new File("foo")),
+            new GpxImageEntry(new File("bar")))
+          .withPrefabValues(ImageData.class, new ImageData(), new ImageData(new ArrayList<>()))
             .verify();
     }
 }
