Index: /trunk/src/org/openstreetmap/josm/data/APIDataSet.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/APIDataSet.java	(revision 10646)
+++ /trunk/src/org/openstreetmap/josm/data/APIDataSet.java	(revision 10647)
@@ -4,4 +4,5 @@
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -331,5 +332,5 @@
             }
             List<Relation> ret = new ArrayList<>(relations);
-            ret.sort((o1, o2) -> Integer.compare(uploadOrder.indexOf(o1), uploadOrder.indexOf(o2)));
+            ret.sort(Comparator.comparingInt(uploadOrder::indexOf));
             return ret;
         }
Index: /trunk/src/org/openstreetmap/josm/data/osm/history/History.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/history/History.java	(revision 10646)
+++ /trunk/src/org/openstreetmap/josm/data/osm/history/History.java	(revision 10647)
@@ -4,4 +4,5 @@
 import java.text.MessageFormat;
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
@@ -68,5 +69,5 @@
     public History sortAscending() {
         List<HistoryOsmPrimitive> copy = new ArrayList<>(versions);
-        copy.sort((o1, o2) -> o1.compareTo(o2));
+        copy.sort(Comparator.naturalOrder());
         return new History(id, type, copy);
     }
@@ -78,5 +79,5 @@
     public History sortDescending() {
         List<HistoryOsmPrimitive> copy = new ArrayList<>(versions);
-        copy.sort((o1, o2) -> o2.compareTo(o1));
+        copy.sort(Comparator.reverseOrder());
         return new History(id, type, copy);
     }
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManagerModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManagerModel.java	(revision 10646)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManagerModel.java	(revision 10647)
@@ -6,4 +6,5 @@
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.HashSet;
 import java.util.List;
@@ -150,10 +151,5 @@
 
     protected void sort() {
-        data.sort((o1, o2) -> {
-                if (o1.getId() < o2.getId()) return 1;
-                if (o1.getId() == o2.getId()) return 0;
-                return -1;
-            }
-        );
+        data.sort(Comparator.comparingInt(Changeset::getId).reversed());
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetListModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetListModel.java	(revision 10646)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetListModel.java	(revision 10647)
@@ -4,4 +4,5 @@
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.HashSet;
 import java.util.List;
@@ -139,10 +140,5 @@
 
     protected void sort() {
-        data.sort((cs1, cs2) -> {
-                if (cs1.getId() > cs2.getId()) return -1;
-                if (cs1.getId() == cs2.getId()) return 0;
-                return 1;
-            }
-        );
+        data.sort(Comparator.comparingInt(Changeset::getId).reversed());
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/io/SaveLayersModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/SaveLayersModel.java	(revision 10646)
+++ /trunk/src/org/openstreetmap/josm/gui/io/SaveLayersModel.java	(revision 10647)
@@ -6,4 +6,5 @@
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
 
@@ -70,5 +71,5 @@
             layerInfo.add(new SaveLayerInfo(layer));
         }
-        layerInfo.sort((o1, o2) -> o1.compareTo(o2));
+        layerInfo.sort(Comparator.naturalOrder());
         fireTableDataChanged();
     }
Index: /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java	(revision 10646)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java	(revision 10647)
@@ -30,4 +30,5 @@
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.Date;
 import java.util.Dictionary;
@@ -1082,5 +1083,5 @@
         }
 
-        dateImgLst.sort((o1, o2) -> o1.getExifTime().compareTo(o2.getExifTime()));
+        dateImgLst.sort(Comparator.comparing(ImageEntry::getExifTime));
 
         return dateImgLst;
Index: /trunk/src/org/openstreetmap/josm/gui/layer/gpx/ImportAudioAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/gpx/ImportAudioAction.java	(revision 10646)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/gpx/ImportAudioAction.java	(revision 10647)
@@ -11,4 +11,5 @@
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Comparator;
 
 import javax.swing.AbstractAction;
@@ -87,5 +88,5 @@
             // long as they don't overlap, that's fine)
             if (sel.length > 1) {
-                Arrays.sort(sel, (a, b) -> a.lastModified() <= b.lastModified() ? -1 : 1);
+                Arrays.sort(sel, Comparator.comparingLong(File::lastModified));
             }
             StringBuilder names = new StringBuilder();
@@ -277,5 +278,5 @@
         /* we must have got at least one waypoint now */
 
-        ((ArrayList<WayPoint>) waypoints).sort((a, b) -> a.time <= b.time ? -1 : 1);
+        ((ArrayList<WayPoint>) waypoints).sort(Comparator.comparingDouble(o -> o.time));
 
         firstTime = -1.0; /* this time of the first waypoint, not first trackpoint */
Index: /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 10646)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 10647)
@@ -19,4 +19,5 @@
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.List;
 
@@ -233,5 +234,5 @@
         if (from instanceof MarkerLayer) {
             data.addAll(((MarkerLayer) from).data);
-            data.sort((o1, o2) -> Double.compare(o1.time, o2.time));
+            data.sort(Comparator.comparingDouble(o -> o.time));
         }
     }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/CacheContentsPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/CacheContentsPanel.java	(revision 10646)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/CacheContentsPanel.java	(revision 10647)
@@ -7,4 +7,5 @@
 import java.awt.event.ActionEvent;
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
@@ -104,5 +105,5 @@
             sortedStats.add(new Pair<>(e.getKey(), e.getValue()[0]));
         }
-        sortedStats.sort((o1, o2) -> -1 * o1.b.compareTo(o2.b));
+        sortedStats.sort(Comparator.comparing(o -> o.b, Comparator.reverseOrder()));
         String[][] ret = new String[sortedStats.size()][3];
         int index = 0;
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreferencesModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreferencesModel.java	(revision 10646)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreferencesModel.java	(revision 10647)
@@ -5,4 +5,5 @@
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -146,10 +147,6 @@
      */
     protected void sort() {
-        availablePlugins.sort((o1, o2) -> {
-                String n1 = o1.getName() == null ? "" : o1.getName().toLowerCase(Locale.ENGLISH);
-                String n2 = o2.getName() == null ? "" : o2.getName().toLowerCase(Locale.ENGLISH);
-                return n1.compareTo(n2);
-            }
-        );
+        availablePlugins.sort(Comparator.comparing(
+                o -> o.getName() == null ? "" : o.getName().toLowerCase(Locale.ENGLISH)));
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/tagging/TagEditorModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/TagEditorModel.java	(revision 10646)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/TagEditorModel.java	(revision 10647)
@@ -8,4 +8,5 @@
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.EnumSet;
 import java.util.HashMap;
@@ -561,5 +562,5 @@
      */
     protected void sort() {
-        tags.sort((self, other) -> self.getName().compareTo(other.getName()));
+        tags.sort(Comparator.comparing(TagModel::getName));
     }
 
Index: /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 10646)
+++ /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 10647)
@@ -24,4 +24,5 @@
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -745,10 +746,5 @@
             // lower the value of "stage" the earlier the plugin should be loaded.
             //
-            toLoad.sort((o1, o2) -> {
-                    if (o1.stage < o2.stage) return -1;
-                    if (o1.stage == o2.stage) return 0;
-                    return 1;
-                }
-            );
+            toLoad.sort(Comparator.comparingInt(o -> o.stage));
             if (toLoad.isEmpty())
                 return;
Index: /trunk/src/org/openstreetmap/josm/tools/I18n.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 10646)
+++ /trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 10647)
@@ -16,4 +16,5 @@
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Locale;
@@ -381,5 +382,5 @@
         Locale[] l = new Locale[v.size()];
         l = v.toArray(l);
-        Arrays.sort(l, (o1, o2) -> o1.toString().compareTo(o2.toString()));
+        Arrays.sort(l, Comparator.comparing(Locale::toString));
         return l;
     }
