Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 17787)
@@ -87,5 +87,5 @@
 
         } else if (GpxUrlPattern.TRACKPOINTS_BBOX.matches(url)) {
-            String[] table = url.split("\\?|=|&", -1);
+            String[] table = url.split("[?=&]", -1);
             for (int i = 0; i < table.length; i++) {
                 if ("bbox".equals(table[i]) && i < table.length-1)
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadSessionTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadSessionTask.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadSessionTask.java	(revision 17787)
@@ -23,5 +23,5 @@
 public class DownloadSessionTask extends AbstractDownloadTask<Object> {
 
-    private static final String PATTERN_SESSION = "https?://.*/.*\\.jo(s|z)";
+    private static final String PATTERN_SESSION = "https?://.*/.*\\.jo([sz])";
 
     private Loader loader;
Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 17787)
@@ -442,5 +442,5 @@
 
         try (PreferencesWriter writer = new PreferencesWriter(
-                new PrintWriter(new File(prefFile + "_tmp"), StandardCharsets.UTF_8.name()), false, defaults)) {
+                new PrintWriter(prefFile + "_tmp", StandardCharsets.UTF_8.name()), false, defaults)) {
             writer.write(settings);
         } catch (SecurityException e) {
Index: trunk/src/org/openstreetmap/josm/data/coor/conversion/LatLonParser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/coor/conversion/LatLonParser.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/data/coor/conversion/LatLonParser.java	(revision 17787)
@@ -43,5 +43,5 @@
             + "('|"+MIN+"|min)|"                // (4)
             + "(\"|"+SEC+"|sec)|"               // (5)
-            + "(,|;)|"                          // (6)
+            + "([,;])|"                         // (6)
             + "([NSEW"+N_TR+S_TR+E_TR+W_TR+"])|"// (7)
             + "\\s+|"
Index: trunk/src/org/openstreetmap/josm/data/osm/Storage.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/Storage.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/data/osm/Storage.java	(revision 17787)
@@ -232,7 +232,5 @@
         modCount++;
         size = 0;
-        for (int i = 0; i < data.length; i++) {
-            data[i] = null;
-        }
+        Arrays.fill(data, null);
     }
 
Index: trunk/src/org/openstreetmap/josm/data/osm/search/SearchCompiler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/search/SearchCompiler.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/data/osm/search/SearchCompiler.java	(revision 17787)
@@ -732,5 +732,5 @@
                     String v1 = Normalizer.normalize(caseSensitive ? mv : mv.toLowerCase(Locale.ENGLISH), Normalizer.Form.NFC);
                     String v2 = Normalizer.normalize(caseSensitive ? value : value.toLowerCase(Locale.ENGLISH), Normalizer.Form.NFC);
-                    return v1.indexOf(v2) != -1;
+                    return v1.contains(v2);
                 }
             }
@@ -1072,5 +1072,5 @@
                     value = Normalizer.normalize(value, Normalizer.Form.NFC);
 
-                    if (key.indexOf(search) != -1 || value.indexOf(search) != -1)
+                    if (key.contains(search) || value.contains(search))
                         return true;
                 }
Index: trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java	(revision 17787)
@@ -364,5 +364,5 @@
     public static JTree buildJTreeList() {
         DefaultMutableTreeNode root = new DefaultMutableTreeNode(tr("Ignore list"));
-        final Pattern elemId1Pattern = Pattern.compile(":(r|w|n)_");
+        final Pattern elemId1Pattern = Pattern.compile(":([rwn])_");
         final Pattern elemId2Pattern = Pattern.compile("^[0-9]+$");
         for (Entry<String, String> e: ignoredErrors.entrySet()) {
@@ -464,8 +464,8 @@
                 String item = child.getUserObject().toString();
                 String entry = null;
-                if (item.matches("^\\[(r|w|n)_.*")) {
+                if (item.matches("^\\[([rwn])_.*")) {
                     // list of elements (produced with list.toString() method)
                     entry = key + ":" + item.substring(1, item.lastIndexOf(']')).replace(", ", ":");
-                } else if (item.matches("^(r|w|n)_.*")) {
+                } else if (item.matches("^([rwn])_.*")) {
                     // single element
                     entry = key + ":" + item;
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/Addresses.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/Addresses.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/Addresses.java	(revision 17787)
@@ -269,5 +269,5 @@
      */
     static List<String> expandHouseNumber(String houseNumber) {
-        return Arrays.asList(houseNumber.split(",|;", -1));
+        return Arrays.asList(houseNumber.split("[,;]", -1));
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/preferences/imagery/HeadersTable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/imagery/HeadersTable.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/imagery/HeadersTable.java	(revision 17787)
@@ -5,5 +5,4 @@
 
 import java.awt.GridBagLayout;
-import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
@@ -107,5 +106,5 @@
 
     private static List<String[]> getHeadersAsVector(Map<String, String> headers) {
-        return headers.entrySet().stream().sorted(Comparator.comparing(Map.Entry::getKey))
+        return headers.entrySet().stream().sorted(Map.Entry.comparingByKey())
                 .map(e -> new String[] {e.getKey(), e.getValue()}).collect(Collectors.toList());
     }
Index: trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java	(revision 17787)
@@ -107,6 +107,6 @@
             }
         }
-        KeyboardUtils.getExtendedKeyCodes(InputContext.getInstance().getLocale()).entrySet()
-            .forEach(e -> list.put(e.getKey(), e.getValue().toString()));
+        KeyboardUtils.getExtendedKeyCodes(InputContext.getInstance().getLocale())
+                .forEach((key, value) -> list.put(key, value.toString()));
         list.put(Integer.valueOf(-1), "");
         return list;
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetItem.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetItem.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetItem.java	(revision 17787)
@@ -89,5 +89,5 @@
             return TYPE_CACHE.get(types);
         Set<TaggingPresetType> result = EnumSet.noneOf(TaggingPresetType.class);
-        for (String type : Arrays.asList(types.split(",", -1))) {
+        for (String type : types.split(",", -1)) {
             try {
                 TaggingPresetType presetType = TaggingPresetType.fromString(type);
Index: trunk/src/org/openstreetmap/josm/io/CachedFile.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/CachedFile.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/io/CachedFile.java	(revision 17787)
@@ -353,5 +353,5 @@
                 ZipEntry entry = entries.nextElement();
                 // choose any file with correct extension. When more than one file, prefer the one which matches namepart
-                if (entry.getName().endsWith('.' + extension) && (resentry == null || entry.getName().indexOf(namepart) >= 0)) {
+                if (entry.getName().endsWith('.' + extension) && (resentry == null || entry.getName().contains(namepart))) {
                     resentry = entry;
                 }
Index: trunk/src/org/openstreetmap/josm/io/GpxWriter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/GpxWriter.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/io/GpxWriter.java	(revision 17787)
@@ -12,5 +12,4 @@
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
@@ -98,5 +97,5 @@
             data.getLayerPrefs().entrySet()
             .stream()
-            .sorted(Comparator.comparing(Map.Entry::getKey))
+            .sorted(Map.Entry.comparingByKey())
             .forEach(entry -> {
                 GpxExtension e = layerExts.add("josm", "entry");
Index: trunk/src/org/openstreetmap/josm/io/InvalidXmlCharacterFilter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/InvalidXmlCharacterFilter.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/io/InvalidXmlCharacterFilter.java	(revision 17787)
@@ -4,4 +4,5 @@
 import java.io.IOException;
 import java.io.Reader;
+import java.util.Arrays;
 
 import org.openstreetmap.josm.tools.Logging;
@@ -28,7 +29,5 @@
     static {
         INVALID_CHARS = new boolean[0x20];
-        for (int i = 0; i < INVALID_CHARS.length; ++i) {
-            INVALID_CHARS[i] = true;
-        }
+        Arrays.fill(INVALID_CHARS, true);
         INVALID_CHARS[0x9] = false; // tab
         INVALID_CHARS[0xA] = false; // LF
Index: trunk/src/org/openstreetmap/josm/io/OsmWriter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmWriter.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/io/OsmWriter.java	(revision 17787)
@@ -319,5 +319,5 @@
     }
 
-    protected static final Comparator<Entry<String, String>> byKeyComparator = Comparator.comparing(Entry::getKey);
+    protected static final Comparator<Entry<String, String>> byKeyComparator = Entry.comparingByKey();
 
     protected void addTags(Tagged osm, String tagname, boolean tagOpen) {
Index: trunk/src/org/openstreetmap/josm/io/OverpassDownloadReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OverpassDownloadReader.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/io/OverpassDownloadReader.java	(revision 17787)
@@ -271,5 +271,5 @@
         }
         if (javaDur) {
-            d = Duration.parse(javaPer ? 'P' + duration.substring(idx, duration.length()) : duration);
+            d = Duration.parse(javaPer ? 'P' + duration.substring(idx) : duration);
         } else if (!javaPer) {
             d = Duration.parse(duration);
Index: trunk/src/org/openstreetmap/josm/io/rtklib/RtkLibPosReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/rtklib/RtkLibPosReader.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/io/rtklib/RtkLibPosReader.java	(revision 17787)
@@ -78,5 +78,5 @@
         Collection<WayPoint> waypoints = new ArrayList<>();
         try (BufferedReader rd = new BufferedReader(new InputStreamReader(source, StandardCharsets.UTF_8))) {
-            String line = null;
+            String line;
             do {
                 line = rd.readLine();
Index: trunk/src/org/openstreetmap/josm/tools/LanguageInfo.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/LanguageInfo.java	(revision 17786)
+++ trunk/src/org/openstreetmap/josm/tools/LanguageInfo.java	(revision 17787)
@@ -66,14 +66,19 @@
                 }
             }
-            if ("nb".equals(code)) { /* OSM-Wiki has "no", but no "nb" */
-                return "No:";
-            } else if ("sr@latin".equals(code)) { /* OSM-Wiki has "Sr-latn" and not Sr-latin */
-                return "Sr-latn:";
-            } else if ("de".equals(code) || "es".equals(code) || "fr".equals(code)
-                    || "it".equals(code) || "nl".equals(code) || "ru".equals(code)
-                    || "ja".equals(code)) {
-                return code.toUpperCase(Locale.ENGLISH) + ":";
-            } else {
-                return code.substring(0, 1).toUpperCase(Locale.ENGLISH) + code.substring(1) + ":";
+            switch (code) {
+                case "nb":          /* OSM-Wiki has "no", but no "nb" */
+                    return "No:";
+                case "sr@latin":    /* OSM-Wiki has "Sr-latn" and not Sr-latin */
+                    return "Sr-latn:";
+                case "de":
+                case "es":
+                case "fr":
+                case "it":
+                case "nl":
+                case "ru":
+                case "ja":
+                    return code.toUpperCase(Locale.ENGLISH) + ":";
+                default:
+                    return code.substring(0, 1).toUpperCase(Locale.ENGLISH) + code.substring(1) + ":";
             }
         }
@@ -160,12 +165,13 @@
     public static String getJavaLocaleCode(String localeName) {
         if (localeName == null) return "en";
-        if ("ca@valencia".equals(localeName)) {
-            localeName = "ca__valencia";
-        } else if ("sr@latin".equals(localeName)) {
-            localeName = "sr__latin";
-        } else if ("he".equals(localeName)) {
-            localeName = "iw_IL";
-        } else if ("id".equals(localeName)) {
-            localeName = "in";
+        switch (localeName) {
+            case "ca@valencia":
+                return "ca__valencia";
+            case "sr@latin":
+                return "sr__latin";
+            case "he":
+                return "iw_IL";
+            case "id":
+                return "in";
         }
         return localeName;
