Index: src/org/openstreetmap/josm/data/gpx/GpxData.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/data/gpx/GpxData.java	(revision 16473)
+++ src/org/openstreetmap/josm/data/gpx/GpxData.java	(date 1590225792568)
@@ -999,15 +999,15 @@
 
     @Override
     public synchronized int hashCode() {
-        final int prime = 31;
-        int result = prime + super.hashCode();
-        result = prime * result + ((namespaces == null) ? 0 : namespaces.hashCode());
-        result = prime * result + ((layerPrefs == null) ? 0 : layerPrefs.hashCode());
-        result = prime * result + ((dataSources == null) ? 0 : dataSources.hashCode());
-        result = prime * result + ((privateRoutes == null) ? 0 : privateRoutes.hashCode());
-        result = prime * result + ((privateTracks == null) ? 0 : privateTracks.hashCode());
-        result = prime * result + ((privateWaypoints == null) ? 0 : privateWaypoints.hashCode());
-        return result;
+        return Objects.hash(
+                super.hashCode(),
+                namespaces,
+                layerPrefs,
+                dataSources,
+                privateRoutes,
+                privateTracks,
+                privateWaypoints
+        );
     }
 
     @Override
Index: src/org/openstreetmap/josm/data/gpx/GpxTrackSegment.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/data/gpx/GpxTrackSegment.java	(revision 16473)
+++ src/org/openstreetmap/josm/data/gpx/GpxTrackSegment.java	(date 1590235908342)
@@ -5,6 +5,7 @@
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 
 import org.openstreetmap.josm.data.Bounds;
 
@@ -77,10 +78,7 @@
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = prime + super.hashCode();
-        result = prime * result + ((wayPoints == null) ? 0 : wayPoints.hashCode());
-        return result;
+        return Objects.hash(super.hashCode(), wayPoints);
     }
 
     @Override
Index: src/org/openstreetmap/josm/data/gpx/WayPoint.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/data/gpx/WayPoint.java	(revision 16473)
+++ src/org/openstreetmap/josm/data/gpx/WayPoint.java	(date 1590225864037)
@@ -287,15 +287,10 @@
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = super.hashCode();
-        long temp = Double.doubleToLongBits(lat);
-        result = prime * result + (int) (temp ^ (temp >>> 32));
-        temp = Double.doubleToLongBits(lon);
-        result = prime * result + (int) (temp ^ (temp >>> 32));
-        temp = getTimeInMillis();
-        result = prime * result + (int) (temp ^ (temp >>> 32));
-        return result;
+        long tempLat = Double.doubleToLongBits(lat);
+        long tempLon = Double.doubleToLongBits(lon);
+        long tempTime = getTimeInMillis();
+        return Objects.hash(super.hashCode(), tempLat ^ (tempLat >>> 32), tempLon ^ (tempLon >>> 32), tempTime ^ (tempTime >>> 32));
     }
 
     @Override
Index: src/org/openstreetmap/josm/data/osm/search/SearchCompiler.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/data/osm/search/SearchCompiler.java	(revision 16473)
+++ src/org/openstreetmap/josm/data/osm/search/SearchCompiler.java	(date 1590225964461)
@@ -421,11 +421,7 @@
 
         @Override
         public int hashCode() {
-            final int prime = 31;
-            int result = 1;
-            result = prime * result + ((lhs == null) ? 0 : lhs.hashCode());
-            result = prime * result + ((rhs == null) ? 0 : rhs.hashCode());
-            return result;
+            return Objects.hash(lhs, lhs);
         }
 
         @Override
@@ -529,11 +525,7 @@
 
         @Override
         public int hashCode() {
-            final int prime = 31;
-            int result = 1;
-            result = prime * result + (defaultValue ? 1231 : 1237);
-            result = prime * result + ((key == null) ? 0 : key.hashCode());
-            return result;
+            return Objects.hash(defaultValue, key);
         }
 
         @Override
@@ -852,13 +844,7 @@
 
         @Override
         public int hashCode() {
-            final int prime = 31;
-            int result = 1;
-            result = prime * result + compareMode;
-            result = prime * result + ((key == null) ? 0 : key.hashCode());
-            result = prime * result + ((referenceNumber == null) ? 0 : referenceNumber.hashCode());
-            result = prime * result + ((referenceValue == null) ? 0 : referenceValue.hashCode());
-            return result;
+            return Objects.hash(compareMode, key, referenceNumber, referenceValue);
         }
 
         @Override
@@ -1009,14 +995,7 @@
 
         @Override
         public int hashCode() {
-            final int prime = 31;
-            int result = 1;
-            result = prime * result + ((key == null) ? 0 : key.hashCode());
-            result = prime * result + ((keyPattern == null) ? 0 : keyPattern.hashCode());
-            result = prime * result + ((mode == null) ? 0 : mode.hashCode());
-            result = prime * result + ((value == null) ? 0 : value.hashCode());
-            result = prime * result + ((valuePattern == null) ? 0 : valuePattern.hashCode());
-            return result;
+            return Objects.hash(key, keyPattern, mode, value, valuePattern);
         }
 
         @Override
@@ -1116,12 +1095,7 @@
 
         @Override
         public int hashCode() {
-            final int prime = 31;
-            int result = 1;
-            result = prime * result + (caseSensitive ? 1231 : 1237);
-            result = prime * result + ((search == null) ? 0 : search.hashCode());
-            result = prime * result + ((searchRegex == null) ? 0 : searchRegex.hashCode());
-            return result;
+            return Objects.hash(caseSensitive, search, searchRegex);
         }
 
         @Override
@@ -1335,11 +1309,7 @@
 
         @Override
         public int hashCode() {
-            final int prime = 31;
-            int result = 1;
-            result = prime * result + (modulo ? 1231 : 1237);
-            result = prime * result + nth;
-            return result;
+            return Objects.hash(modulo, nth);
         }
 
         @Override
@@ -1391,11 +1361,7 @@
 
         @Override
         public int hashCode() {
-            final int prime = 31;
-            int result = 1;
-            result = prime * result + (int) (max ^ (max >>> 32));
-            result = prime * result + (int) (min ^ (min >>> 32));
-            return result;
+            return Objects.hash(max ^ (max >>> 32), min ^ (min >>> 32));
         }
 
         @Override
Index: src/org/openstreetmap/josm/data/preferences/AbstractProperty.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/data/preferences/AbstractProperty.java	(revision 16473)
+++ src/org/openstreetmap/josm/data/preferences/AbstractProperty.java	(date 1590225676400)
@@ -8,6 +8,8 @@
 import org.openstreetmap.josm.tools.ListenableWeakReference;
 import org.openstreetmap.josm.tools.bugreport.BugReport;
 
+import java.util.Objects;
+
 /**
  * Captures the common functionality of preference properties
  * @param <T> The type of object accessed by this property
@@ -28,11 +30,7 @@
 
         @Override
         public int hashCode() {
-            final int prime = 31;
-            int result = 1;
-            result = prime * result + getOuterType().hashCode();
-            result = prime * result + ((listener == null) ? 0 : listener.hashCode());
-            return result;
+            return Objects.hash(getOuterType(), listener);
         }
 
         @Override
@@ -317,11 +315,7 @@
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((key == null) ? 0 : key.hashCode());
-        result = prime * result + ((preferences == null) ? 0 : preferences.hashCode());
-        return result;
+        return Objects.hash(key, preferences);
     }
 
     @Override
Index: src/org/openstreetmap/josm/data/tagging/ac/AutoCompletionItem.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/data/tagging/ac/AutoCompletionItem.java	(revision 16473)
+++ src/org/openstreetmap/josm/data/tagging/ac/AutoCompletionItem.java	(date 1590225263209)
@@ -1,6 +1,8 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.data.tagging.ac;
 
+import java.util.Objects;
+
 /**
  * Represents an entry in the set of auto completion values.
  *
@@ -85,12 +87,7 @@
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result
-                + ((priority == null) ? 0 : priority.hashCode());
-        result = prime * result + ((value == null) ? 0 : value.hashCode());
-        return result;
+        return Objects.hash(priority, value);
     }
 
     @Override
Index: src/org/openstreetmap/josm/gui/download/UserQueryList.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/gui/download/UserQueryList.java	(revision 16473)
+++ src/org/openstreetmap/josm/gui/download/UserQueryList.java	(date 1590225676408)
@@ -624,11 +624,7 @@
 
         @Override
         public int hashCode() {
-            final int prime = 31;
-            int result = 1;
-            result = prime * result + ((itemKey == null) ? 0 : itemKey.hashCode());
-            result = prime * result + ((query == null) ? 0 : query.hashCode());
-            return result;
+            return Objects.hash(itemKey, query);
         }
 
         @Override
Index: src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java	(revision 16473)
+++ src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java	(date 1590236265548)
@@ -76,7 +76,7 @@
 
     @Override
     public int hashCode() {
-        return 31 * super.hashCode() + ((thumbnail == null) ? 0 : thumbnail.hashCode());
+        return Objects.hash(super.hashCode(), thumbnail);
     }
 
     @Override
Index: src/org/openstreetmap/josm/gui/layer/imagery/TileSourceDisplaySettings.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/gui/layer/imagery/TileSourceDisplaySettings.java	(revision 16473)
+++ src/org/openstreetmap/josm/gui/layer/imagery/TileSourceDisplaySettings.java	(date 1590225676428)
@@ -4,6 +4,7 @@
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 import org.openstreetmap.gui.jmapviewer.interfaces.TileSource;
@@ -322,12 +323,7 @@
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + (autoLoad ? 1231 : 1237);
-        result = prime * result + (autoZoom ? 1231 : 1237);
-        result = prime * result + (showErrors ? 1231 : 1237);
-        return result;
+        return Objects.hash(autoLoad, autoZoom, showErrors);
     }
 
     @Override
Index: src/org/openstreetmap/josm/gui/mappaint/styleelement/placement/CompletelyInsideAreaStrategy.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/gui/mappaint/styleelement/placement/CompletelyInsideAreaStrategy.java	(revision 16473)
+++ src/org/openstreetmap/josm/gui/mappaint/styleelement/placement/CompletelyInsideAreaStrategy.java	(date 1590236287793)
@@ -4,6 +4,7 @@
 import java.awt.Rectangle;
 import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
+import java.util.Objects;
 
 import org.openstreetmap.josm.gui.MapViewState;
 import org.openstreetmap.josm.gui.draw.MapViewPath;
@@ -121,14 +122,9 @@
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        long temp;
-        temp = Double.doubleToLongBits(offsetX);
-        result = prime * result + (int) (temp ^ (temp >>> 32));
-        temp = Double.doubleToLongBits(offsetY);
-        result = prime * result + (int) (temp ^ (temp >>> 32));
-        return result;
+        long tempX = Double.doubleToLongBits(offsetX);
+        long tempY = Double.doubleToLongBits(offsetY);
+        return Objects.hash(tempX ^ (tempX >>> 32), tempY ^ (tempY >>> 32));
     }
 
     @Override
Index: src/org/openstreetmap/josm/gui/mappaint/styleelement/placement/OnLineStrategy.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/gui/mappaint/styleelement/placement/OnLineStrategy.java	(revision 16473)
+++ src/org/openstreetmap/josm/gui/mappaint/styleelement/placement/OnLineStrategy.java	(date 1590236391138)
@@ -10,6 +10,7 @@
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.stream.IntStream;
 
@@ -353,12 +354,8 @@
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        long temp;
-        temp = Double.doubleToLongBits(yOffset);
-        result = prime * result + (int) (temp ^ (temp >>> 32));
-        return result;
+        long temp = Double.doubleToLongBits(yOffset);
+        return Objects.hash(temp ^ (temp >>> 32));
     }
 
     @Override
Index: src/org/openstreetmap/josm/gui/mappaint/styleelement/AreaIconElement.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/gui/mappaint/styleelement/AreaIconElement.java	(revision 16473)
+++ src/org/openstreetmap/josm/gui/mappaint/styleelement/AreaIconElement.java	(date 1590236391154)
@@ -71,12 +71,7 @@
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = super.hashCode();
-        result = prime * result + ((iconImage == null) ? 0 : iconImage.hashCode());
-        result = prime * result + ((iconImageAngle == null) ? 0 : iconImageAngle.hashCode());
-        result = prime * result + ((iconPosition == null) ? 0 : iconPosition.hashCode());
-        return result;
+        return Objects.hash(super.hashCode(), iconImage, iconImageAngle, iconPosition);
     }
 
     @Override
Index: src/org/openstreetmap/josm/gui/util/WindowGeometry.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/gui/util/WindowGeometry.java	(revision 16473)
+++ src/org/openstreetmap/josm/gui/util/WindowGeometry.java	(date 1590225676468)
@@ -13,6 +13,7 @@
 import java.awt.Point;
 import java.awt.Rectangle;
 import java.awt.Window;
+import java.util.Objects;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -490,11 +491,7 @@
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((extent == null) ? 0 : extent.hashCode());
-        result = prime * result + ((topLeft == null) ? 0 : topLeft.hashCode());
-        return result;
+        return Objects.hash(extent, topLeft);
     }
 
     @Override
Index: src/org/openstreetmap/josm/plugins/PluginHandler.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 16473)
+++ src/org/openstreetmap/josm/plugins/PluginHandler.java	(date 1590236391162)
@@ -32,6 +32,7 @@
 import java.util.Locale;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Objects;
 import java.util.Set;
 import java.util.TreeSet;
 import java.util.concurrent.ExecutionException;
@@ -221,9 +222,7 @@
 
         @Override
         public int hashCode() {
-            final int prime = 31;
-            int result = prime + ((name == null) ? 0 : name.hashCode());
-            return prime * result + ((reason == null) ? 0 : reason.hashCode());
+            return Objects.hash(name, reason);
         }
 
         @Override
Index: src/org/openstreetmap/josm/tools/template_engine/ContextSwitchTemplate.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/tools/template_engine/ContextSwitchTemplate.java	(revision 16473)
+++ src/org/openstreetmap/josm/tools/template_engine/ContextSwitchTemplate.java	(date 1590236391146)
@@ -7,6 +7,7 @@
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -53,7 +54,7 @@
 
         @Override
         public int hashCode() {
-            return 31 + ((condition == null) ? 0 : condition.hashCode());
+            return Objects.hash(condition);
         }
 
         @Override
@@ -103,7 +104,7 @@
 
         @Override
         public int hashCode() {
-            return 31 * super.hashCode() + ((childCondition == null) ? 0 : childCondition.hashCode());
+            return Objects.hash(super.hashCode(), childCondition);
         }
 
         @Override
@@ -166,7 +167,7 @@
 
         @Override
         public int hashCode() {
-            return 31 * super.hashCode() + ((parentCondition == null) ? 0 : parentCondition.hashCode());
+            return Objects.hash(super.hashCode(), parentCondition);
         }
 
         @Override
@@ -209,11 +210,7 @@
 
         @Override
         public int hashCode() {
-            final int prime = 31;
-            int result = super.hashCode();
-            result = prime * result + ((lhs == null) ? 0 : lhs.hashCode());
-            result = prime * result + ((rhs == null) ? 0 : rhs.hashCode());
-            return result;
+            return Objects.hash(super.hashCode(), lhs, rhs);
         }
 
         @Override
@@ -262,11 +259,7 @@
 
         @Override
         public int hashCode() {
-            final int prime = 31;
-            int result = super.hashCode();
-            result = prime * result + ((lhs == null) ? 0 : lhs.hashCode());
-            result = prime * result + ((rhs == null) ? 0 : rhs.hashCode());
-            return result;
+            return Objects.hash(lhs, rhs);
         }
 
         @Override
@@ -395,11 +388,7 @@
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((context == null) ? 0 : context.hashCode());
-        result = prime * result + ((template == null) ? 0 : template.hashCode());
-        return result;
+        return Objects.hash(context, template);
     }
 
     @Override
Index: src/org/openstreetmap/josm/tools/template_engine/SearchExpressionCondition.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/tools/template_engine/SearchExpressionCondition.java	(revision 16473)
+++ src/org/openstreetmap/josm/tools/template_engine/SearchExpressionCondition.java	(date 1590225759992)
@@ -3,6 +3,8 @@
 
 import org.openstreetmap.josm.data.osm.search.SearchCompiler.Match;
 
+import java.util.Objects;
+
 /**
  * Conditional {@link TemplateEntry} that executes another template in case a search expression applies
  * to the given data provider.
@@ -39,11 +41,7 @@
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((condition == null) ? 0 : condition.hashCode());
-        result = prime * result + ((text == null) ? 0 : text.hashCode());
-        return result;
+        return Objects.hash(condition, text);
     }
 
     @Override
Index: src/org/openstreetmap/josm/tools/template_engine/StaticText.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/tools/template_engine/StaticText.java	(revision 16473)
+++ src/org/openstreetmap/josm/tools/template_engine/StaticText.java	(date 1590225760000)
@@ -1,6 +1,8 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.tools.template_engine;
 
+import java.util.Objects;
+
 /**
  * {@link TemplateEntry} representing a static string.
  * <p>
@@ -35,7 +37,7 @@
 
     @Override
     public int hashCode() {
-        return 31 + ((staticText == null) ? 0 : staticText.hashCode());
+        return Objects.hash(staticText);
     }
 
     @Override
Index: src/org/openstreetmap/josm/tools/template_engine/Variable.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/tools/template_engine/Variable.java	(revision 16473)
+++ src/org/openstreetmap/josm/tools/template_engine/Variable.java	(date 1590225987753)
@@ -3,6 +3,7 @@
 
 import java.util.Collection;
 import java.util.Locale;
+import java.util.Objects;
 
 /**
  * {@link TemplateEntry} that inserts the value of a variable.
@@ -82,11 +83,7 @@
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + (special ? 1231 : 1237);
-        result = prime * result + ((variableName == null) ? 0 : variableName.hashCode());
-        return result;
+        return Objects.hash(special, variableName);
     }
 
     @Override
Index: src/org/openstreetmap/josm/tools/RotationAngle.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/org/openstreetmap/josm/tools/RotationAngle.java	(revision 16473)
+++ src/org/openstreetmap/josm/tools/RotationAngle.java	(date 1590225676432)
@@ -3,6 +3,7 @@
 
 import java.util.List;
 import java.util.Locale;
+import java.util.Objects;
 
 import org.openstreetmap.josm.data.osm.IPrimitive;
 import org.openstreetmap.josm.data.osm.Node;
@@ -81,11 +82,8 @@
 
         @Override
         public int hashCode() {
-            final int prime = 31;
-            int result = 1;
             long temp = Double.doubleToLongBits(angle);
-            result = prime * result + (int) (temp ^ (temp >>> 32));
-            return result;
+            return Objects.hash(temp ^ (temp >>> 32));
         }
 
         @Override
