Index: /trunk/ivy.xml
===================================================================
--- /trunk/ivy.xml	(revision 19501)
+++ /trunk/ivy.xml	(revision 19502)
@@ -41,11 +41,11 @@
         <dependency conf="sources->sources" org="org.eclipse.parsson" name="parsson" rev="1.1.7"/>
         <dependency conf="sources->sources" org="org.apache.commons" name="commons-jcs3-core" rev="3.2.1"/>
-        <dependency conf="sources->sources" org="org.apache.commons" name="commons-compress" rev="1.27.1"/>
+        <dependency conf="sources->sources" org="org.apache.commons" name="commons-compress" rev="1.28.0"/>
         <dependency conf="sources->sources" org="jakarta.annotation" name="jakarta.annotation-api" rev="2.1.1" />
-        <dependency conf="sources->sources" org="org.tukaani" name="xz" rev="1.10"/>
+        <dependency conf="sources->sources" org="org.tukaani" name="xz" rev="1.11"/>
         <dependency conf="sources->sources" org="com.adobe.xmp" name="xmpcore" rev="6.1.11"/>
         <dependency conf="sources->sources" org="com.drewnoakes" name="metadata-extractor" rev="2.19.0" transitive="false"/>
         <dependency conf="sources->sources" org="com.formdev" name="svgSalamander" rev="1.1.4"/>
-        <dependency conf="sources->sources" org="ch.poole" name="OpeningHoursParser" rev="0.28.2"/>
+        <dependency conf="sources->sources" org="ch.poole" name="OpeningHoursParser" rev="0.29.0"/>
         <dependency conf="sources->default" org="org.webjars.npm" name="tag2link" rev="2025.11.21"/><!-- sources->default sic! (tag2link-sources.jar is empty, see #19335) -->
         <!-- commonslang->default -->
Index: /trunk/nodist/pom.xml
===================================================================
--- /trunk/nodist/pom.xml	(revision 19501)
+++ /trunk/nodist/pom.xml	(revision 19502)
@@ -254,5 +254,5 @@
                 <groupId>org.junit</groupId>
                 <artifactId>junit-bom</artifactId>
-                <version>5.11.4</version>
+                <version>5.14.2</version>
                 <type>pom</type>
                 <scope>import</scope>
@@ -285,5 +285,5 @@
                 <groupId>org.apache.commons</groupId>
                 <artifactId>commons-compress</artifactId>
-                <version>1.27.1</version>
+                <version>1.28.0</version>
                 <scope>provided</scope>
             </dependency>
@@ -297,5 +297,5 @@
                 <groupId>org.tukaani</groupId>
                 <artifactId>xz</artifactId>
-                <version>1.10</version>
+                <version>1.11</version>
                 <scope>provided</scope>
             </dependency>
@@ -321,5 +321,5 @@
                 <groupId>ch.poole</groupId>
                 <artifactId>OpeningHoursParser</artifactId>
-                <version>0.28.2</version>
+                <version>0.29.0</version>
                 <scope>provided</scope>
             </dependency>
@@ -352,5 +352,5 @@
                 <groupId>org.wiremock</groupId>
                 <artifactId>wiremock</artifactId>
-                <version>3.10.0</version>
+                <version>3.13.2</version>
                 <scope>test</scope>
             </dependency>
@@ -358,5 +358,5 @@
                 <groupId>io.github.classgraph</groupId>
                 <artifactId>classgraph</artifactId>
-                <version>4.8.179</version>
+                <version>4.8.184</version>
                 <scope>test</scope>
             </dependency>
@@ -382,5 +382,5 @@
                 <groupId>org.awaitility</groupId>
                 <artifactId>awaitility</artifactId>
-                <version>4.2.2</version>
+                <version>4.3.0</version>
                 <scope>test</scope>
             </dependency>
Index: /trunk/src/org/openstreetmap/josm/data/gpx/GpxTrack.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/gpx/GpxTrack.java	(revision 19501)
+++ /trunk/src/org/openstreetmap/josm/data/gpx/GpxTrack.java	(revision 19502)
@@ -211,5 +211,6 @@
     @Override
     public int hashCode() {
-        return 31 * super.hashCode() + ((segments == null) ? 0 : segments.hashCode());
+        return 31 * super.hashCode() + ((segments == null) ? 0 : segments.hashCode())
+            + ((attr == null) ? 0 : attr.hashCode());
     }
 
@@ -230,4 +231,9 @@
         } else if (!segments.equals(other.segments))
             return false;
+        if (attr == null) {
+            if (other.attr != null)
+                return false;
+        } else if (!attr.equals(other.attr))
+            return false;
         return true;
     }
Index: /trunk/test/unit/org/openstreetmap/josm/data/gpx/GpxDataTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/gpx/GpxDataTest.java	(revision 19501)
+++ /trunk/test/unit/org/openstreetmap/josm/data/gpx/GpxDataTest.java	(revision 19502)
@@ -16,4 +16,6 @@
 import java.util.Collections;
 import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -494,4 +496,12 @@
         GpxExtensionCollection col = new GpxExtensionCollection();
         col.add("josm", "from-server", "true");
+        Collection<Collection<WayPoint>> trackSegs1 = new ArrayList<Collection<WayPoint>>();
+        Collection<Collection<WayPoint>> trackSegs2 = new ArrayList<Collection<WayPoint>>();
+        Collection<WayPoint> wps = new ArrayList<WayPoint>();
+        wps.add(new WayPoint(LatLon.SOUTH_POLE));
+        trackSegs2.add(wps);
+        Map<String, Object> attributes1 = new HashMap<String, Object>();
+        Map<String, Object> attributes2 = new HashMap<String, Object>();
+        attributes2.put("test", "test");
         EqualsVerifier.forClass(GpxData.class).usingGetClass()
             .suppress(Warning.NONFINAL_FIELDS)
@@ -501,4 +511,5 @@
             .withPrefabValues(ListenerList.class, ListenerList.create(), ListenerList.create())
             .withPrefabValues(GpxExtensionCollection.class, new GpxExtensionCollection(), col)
+            .withPrefabValues(IGpxTrack.class, new GpxTrack(trackSegs1, attributes1), new GpxTrack(trackSegs2, attributes2))
             .verify();
     }
