Index: /trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 8390)
@@ -326,9 +326,9 @@
         public String toString() {
             return new StringBuilder()
-            .append("[")
+            .append('[')
             .append(a.getId())
-            .append(",")
+            .append(',')
             .append(b.getId())
-            .append("]")
+            .append(']')
             .toString();
         }
Index: /trunk/src/org/openstreetmap/josm/actions/CopyAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/CopyAction.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/actions/CopyAction.java	(revision 8390)
@@ -67,6 +67,5 @@
         StringBuilder idsBuilder = new StringBuilder();
         for (OsmPrimitive p : primitives) {
-            idsBuilder.append(OsmPrimitiveType.from(p).getAPIName()).append(" ");
-            idsBuilder.append(p.getId()).append(",");
+            idsBuilder.append(OsmPrimitiveType.from(p).getAPIName()).append(' ').append(p.getId()).append(',');
         }
         return idsBuilder.substring(0, idsBuilder.length() - 1);
Index: /trunk/src/org/openstreetmap/josm/actions/CopyCoordinatesAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/CopyCoordinatesAction.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/actions/CopyCoordinatesAction.java	(revision 8390)
@@ -32,5 +32,5 @@
             s.append(", ");
             s.append(n.getCoor().lon());
-            s.append("\n");
+            s.append('\n');
         }
         Utils.copyToClipboard(s.toString().trim());
Index: /trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java	(revision 8390)
@@ -165,5 +165,5 @@
                             importer.filter.getDescription()
                     )
-            ).append("<br>").append("<ul>");
+            ).append("<br><ul>");
             for (File f: files) {
                 msg.append("<li>").append(f.getAbsolutePath()).append("</li>");
@@ -189,5 +189,5 @@
                             files.size()
                     )
-            ).append("<br>").append("<ul>");
+            ).append("<br><ul>");
             for (File f: files) {
                 msg.append("<li>").append(f.getAbsolutePath()).append(" (<i>")
Index: /trunk/src/org/openstreetmap/josm/actions/RestartAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/RestartAction.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/actions/RestartAction.java	(revision 8390)
@@ -116,5 +116,5 @@
                 StringBuilder sb = new StringBuilder(mainCommand[0]);
                 for (int i = 1; i < mainCommand.length && !mainCommand[i-1].endsWith(".jar"); i++) {
-                    sb.append(" ").append(mainCommand[i]);
+                    sb.append(' ').append(mainCommand[i]);
                 }
                 String jarPath = sb.toString();
Index: /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 8390)
@@ -70,8 +70,6 @@
         StringBuilder text = new StringBuilder();
         text.append(Version.getInstance().getReleaseAttributes())
-            .append("\n")
-            .append("Identification: ").append(Version.getInstance().getAgentString())
-            .append("\n")
-            .append("Memory Usage: ")
+            .append("\nIdentification: ").append(Version.getInstance().getAgentString())
+            .append("\nMemory Usage: ")
             .append(Runtime.getRuntime().totalMemory()/1024/1024)
             .append(" MB / ")
@@ -79,9 +77,8 @@
             .append(" MB (")
             .append(Runtime.getRuntime().freeMemory()/1024/1024)
-            .append(" MB allocated, but free)")
-            .append("\n")
-            .append("Java version: ").append(System.getProperty("java.version")).append(", ")
-            .append(System.getProperty("java.vendor")).append(", ").append(System.getProperty("java.vm.name"))
-            .append("\n");
+            .append(" MB allocated, but free)\nJava version: ")
+            .append(System.getProperty("java.version")).append(", ")
+            .append(System.getProperty("java.vendor")).append(", ")
+            .append(System.getProperty("java.vm.name")).append('\n');
         if (Main.platform.getClass() == PlatformHookUnixoid.class) {
             // Add Java package details
@@ -90,5 +87,5 @@
                 text.append("Java package: ")
                     .append(packageDetails)
-                    .append("\n");
+                    .append('\n');
             }
             // Add WebStart package details if run from JNLP
@@ -98,5 +95,5 @@
                     text.append("WebStart package: ")
                         .append(webStartDetails)
-                        .append("\n");
+                        .append('\n');
                 }
             }
@@ -127,6 +124,5 @@
             }
             if (!vmArguments.isEmpty()) {
-                text.append("VM arguments: "+ vmArguments.toString().replace("\\\\", "\\"));
-                text.append("\n");
+                text.append("VM arguments: ").append(vmArguments.toString().replace("\\\\", "\\")).append('\n');
             }
         } catch (SecurityException e) {
@@ -135,6 +131,5 @@
         List<String> commandLineArgs = Main.getCommandLineArgs();
         if (!commandLineArgs.isEmpty()) {
-            text.append("Program arguments: "+ Arrays.toString(commandLineArgs.toArray()));
-            text.append("\n");
+            text.append("Program arguments: ").append(Arrays.toString(commandLineArgs.toArray())).append('\n');
         }
         if (Main.main != null) {
@@ -145,11 +140,9 @@
                     text.append("Dataset consistency test: No problems found\n");
                 } else {
-                    text.append("\nDataset consistency test:\n"+result+"\n");
-                }
-            }
-        }
-        text.append("\n")
-            .append(PluginHandler.getBugReportText())
-            .append("\n");
+                    text.append("\nDataset consistency test:\n").append(result).append('\n');
+                }
+            }
+        }
+        text.append('\n').append(PluginHandler.getBugReportText()).append('\n');
 
         Collection<String> errorsWarnings = Main.getLastErrorAndWarnings();
@@ -157,7 +150,7 @@
             text.append("Last errors/warnings:\n");
             for (String s : errorsWarnings) {
-                text.append("- ").append(s).append("\n");
-            }
-            text.append("\n");
+                text.append("- ").append(s).append('\n');
+            }
+            text.append('\n');
         }
 
@@ -180,5 +173,5 @@
             }
             for (Entry<String, Setting<?>> entry : settings.entrySet()) {
-                text.append(entry.getKey()).append("=").append(entry.getValue().getValue()).append("\n");
+                text.append(entry.getKey()).append('=').append(entry.getValue().getValue()).append('\n');
             }
         } catch (Exception x) {
Index: /trunk/src/org/openstreetmap/josm/actions/ToggleAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/ToggleAction.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/actions/ToggleAction.java	(revision 8390)
@@ -3,6 +3,6 @@
 
 import java.awt.event.ActionEvent;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.HashSet;
+import java.util.Set;
 
 import javax.swing.ButtonModel;
@@ -23,5 +23,5 @@
 public abstract class ToggleAction extends JosmAction {
 
-    private final transient List<ButtonModel> buttonModels = new ArrayList<>();
+    private final transient Set<ButtonModel> buttonModels = new HashSet<>();
 
     /**
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 8390)
@@ -1192,10 +1192,10 @@
         if (getCurrentBaseNode() != null && !wayIsFinished) {
             if (alt) {
-                rv.append(" ").append(tr("Start new way from last node."));
+                rv.append(' ').append(tr("Start new way from last node."));
             } else {
-                rv.append(" ").append(tr("Continue way from last node."));
+                rv.append(' ').append(tr("Continue way from last node."));
             }
             if (snapHelper.isSnapOn()) {
-                rv.append(" ").append(tr("Angle snapping active."));
+                rv.append(' ').append(tr("Angle snapping active."));
             }
         }
@@ -1220,5 +1220,5 @@
             for (Node m : w.getNodes()) {
                 if (m.equals(mouseOnExistingNode) || mouseOnExistingWays.contains(w)) {
-                    rv.append(" ").append(tr("Finish drawing."));
+                    rv.append(' ').append(tr("Finish drawing."));
                     break;
                 }
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 8390)
@@ -252,7 +252,7 @@
                 "Alt-drag to create a new rectangle, double click to add a new node."));
             if (dualAlignEnabled) {
-                rv.append(" ").append(tr("Dual alignment active."));
+                rv.append(' ').append(tr("Dual alignment active."));
                 if (dualAlignSegmentCollapsed)
-                    rv.append(" ").append(tr("Segment collapsed due to its direction reversing."));
+                    rv.append(' ').append(tr("Segment collapsed due to its direction reversing."));
             }
         } else {
@@ -270,7 +270,7 @@
             }
             if (dualAlignActive) {
-                rv.append(" ").append(tr("Dual alignment active."));
+                rv.append(' ').append(tr("Dual alignment active."));
                 if (dualAlignSegmentCollapsed) {
-                    rv.append(" ").append(tr("Segment collapsed due to its direction reversing."));
+                    rv.append(' ').append(tr("Segment collapsed due to its direction reversing."));
                 }
             }
Index: /trunk/src/org/openstreetmap/josm/actions/search/PushbackTokenizer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/search/PushbackTokenizer.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/actions/search/PushbackTokenizer.java	(revision 8390)
@@ -177,5 +177,5 @@
             // try parsing number
             try {
-                currentNumber = Long.parseLong(currentText);
+                currentNumber = Long.valueOf(currentText);
             } catch (NumberFormatException e) {
                 currentNumber = null;
@@ -186,10 +186,10 @@
             if (isRange) {
                 try {
-                    currentNumber = Long.parseLong(currentText.substring(0, pos));
+                    currentNumber = Long.valueOf(currentText.substring(0, pos));
                 } catch (NumberFormatException e) {
                     currentNumber = null;
                 }
                 try {
-                    currentRange = Long.parseLong(currentText.substring(pos + 1));
+                    currentRange = Long.valueOf(currentText.substring(pos + 1));
                 } catch (NumberFormatException e) {
                     currentRange = null;
Index: /trunk/src/org/openstreetmap/josm/actions/upload/CyclicUploadDependencyException.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/upload/CyclicUploadDependencyException.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/actions/upload/CyclicUploadDependencyException.java	(revision 8390)
@@ -20,5 +20,5 @@
         StringBuilder sb = new StringBuilder();
         if (r.getName() != null) {
-            sb.append("'").append(r.getName()).append("'");
+            sb.append('\'').append(r.getName()).append('\'');
         } else if (!r.isNew()) {
             sb.append(r.getId());
@@ -33,12 +33,12 @@
         StringBuilder sb = new StringBuilder();
         sb.append(tr("Cyclic dependency between relations:"))
-          .append("[");
+          .append('[');
         for (int i=0; i< cycle.size(); i++) {
             if (i >0 ) {
-                sb.append(",");
+                sb.append(',');
             }
             sb.append(formatRelation(cycle.get(i)));
         }
-        sb.append("]");
+        sb.append(']');
         return sb.toString();
     }
Index: /trunk/src/org/openstreetmap/josm/actions/upload/UploadNotesTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/upload/UploadNotesTask.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/actions/upload/UploadNotesTask.java	(revision 8390)
@@ -133,5 +133,5 @@
                 for (Map.Entry<Note, Exception> entry : failedNotes.entrySet()) {
                     sb.append(tr("Note {0} failed: {1}", entry.getKey().getId(), entry.getValue().getMessage()));
-                    sb.append("\n");
+                    sb.append('\n');
                 }
                 Main.error("Notes failed to upload: " + sb.toString());
Index: /trunk/src/org/openstreetmap/josm/data/CustomConfigurator.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/CustomConfigurator.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/CustomConfigurator.java	(revision 8390)
@@ -75,5 +75,5 @@
     public static void log(String s) {
         summary.append(s);
-        summary.append("\n");
+        summary.append('\n');
     }
 
Index: /trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 8390)
@@ -1370,8 +1370,8 @@
             f.setAccessible(true);
             if (f.getType() == Boolean.class || f.getType() == boolean.class) {
-                value = Boolean.parseBoolean(key_value.getValue());
+                value = Boolean.valueOf(key_value.getValue());
             } else if (f.getType() == Integer.class || f.getType() == int.class) {
                 try {
-                    value = Integer.parseInt(key_value.getValue());
+                    value = Integer.valueOf(key_value.getValue());
                 } catch (NumberFormatException nfe) {
                     continue;
@@ -1379,5 +1379,5 @@
             } else if (f.getType() == Double.class || f.getType() == double.class) {
                 try {
-                    value = Double.parseDouble(key_value.getValue());
+                    value = Double.valueOf(key_value.getValue());
                 } catch (NumberFormatException nfe) {
                     continue;
@@ -1701,7 +1701,7 @@
     public String toXML(boolean nopass) {
         StringBuilder b = new StringBuilder(
-                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-                "<preferences xmlns=\""+Main.getXMLBase()+"/preferences-1.0\" version=\""+
-                Version.getInstance().getVersion() + "\">\n");
+                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<preferences xmlns=\"")
+                .append(Main.getXMLBase()).append("/preferences-1.0\" version=\"")
+                .append(Version.getInstance().getVersion()).append("\">\n");
         SettingToXml toXml = new SettingToXml(b, nopass);
         for (Entry<String, Setting<?>> e : settingsMap.entrySet()) {
Index: /trunk/src/org/openstreetmap/josm/data/Version.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/Version.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/Version.java	(revision 8390)
@@ -41,5 +41,5 @@
             try (BufferedReader in = Utils.openURLReader(resource)) {
                 for (String line = in.readLine(); line != null; line = in.readLine()) {
-                    sb.append(line).append("\n");
+                    sb.append(line).append('\n');
                 }
             }
@@ -144,5 +144,5 @@
         StringBuilder sb = new StringBuilder();
         for(Entry<String,String> property: properties.entrySet()) {
-            sb.append(property.getKey()).append(":").append(property.getValue()).append("\n");
+            sb.append(property.getKey()).append(':').append(property.getValue()).append('\n');
         }
         releaseDescription = sb.toString();
Index: /trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java	(revision 8390)
@@ -262,5 +262,5 @@
                 for (Shape s : i.bounds.getShapes()) {
                     if (shapesString.length() > 0) {
-                        shapesString.append(";");
+                        shapesString.append(';');
                     }
                     shapesString.append(s.encodeAsString(","));
@@ -274,5 +274,5 @@
                 for (String p : i.serverProjections) {
                     if (val.length() > 0) {
-                        val.append(",");
+                        val.append(',');
                     }
                     val.append(p);
Index: /trunk/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java	(revision 8390)
@@ -435,14 +435,14 @@
 
         if (isIncomplete()) {
-            builder.append("I");
+            builder.append('I');
         }
         if (isModified()) {
-            builder.append("M");
+            builder.append('M');
         }
         if (isVisible()) {
-            builder.append("V");
+            builder.append('V');
         }
         if (isDeleted()) {
-            builder.append("D");
+            builder.append('D');
         }
         return builder.toString();
Index: /trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 8390)
@@ -1285,17 +1285,17 @@
         if (isDisabled()) {
             if (isDisabledAndHidden()) {
-                builder.append("h");
+                builder.append('h');
             } else {
-                builder.append("d");
+                builder.append('d');
             }
         }
         if (isTagged()) {
-            builder.append("T");
+            builder.append('T');
         }
         if (hasDirectionKeys()) {
             if (reversedDirection()) {
-                builder.append("<");
+                builder.append('<');
             } else {
-                builder.append(">");
+                builder.append('>');
             }
         }
Index: /trunk/src/org/openstreetmap/josm/data/osm/OsmUtils.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/OsmUtils.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/osm/OsmUtils.java	(revision 8390)
@@ -2,9 +2,9 @@
 package org.openstreetmap.josm.data.osm;
 
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.List;
+import java.util.HashSet;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Set;
 
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -14,18 +14,18 @@
 public final class OsmUtils {
 
-    private OsmUtils() {
-        // Hide default constructor for utils classes
-    }
-
-    private static final List<String> TRUE_VALUES = new ArrayList<>(Arrays
-            .asList(new String[] { "true", "yes", "1", "on" }));
-    private static final List<String> FALSE_VALUES = new ArrayList<>(Arrays
-            .asList(new String[] { "false", "no", "0", "off" }));
-    private static final List<String> REVERSE_VALUES = new ArrayList<>(Arrays
-            .asList(new String[] { "reverse", "-1" }));
+    private static final Set<String> TRUE_VALUES = new HashSet<>(Arrays
+            .asList("true", "yes", "1", "on"));
+    private static final Set<String> FALSE_VALUES = new HashSet<>(Arrays
+            .asList("false", "no", "0", "off"));
+    private static final Set<String> REVERSE_VALUES = new HashSet<>(Arrays
+            .asList("reverse", "-1"));
 
     public static final String trueval = "yes";
     public static final String falseval = "no";
     public static final String reverseval = "-1";
+
+    private OsmUtils() {
+        // Hide default constructor for utils classes
+    }
 
     public static Boolean getOsmBoolean(String value) {
Index: /trunk/src/org/openstreetmap/josm/data/osm/Relation.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/Relation.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/osm/Relation.java	(revision 8390)
@@ -274,16 +274,15 @@
               .append(" version=")
               .append(getVersion())
-              .append(" ")
+              .append(' ')
               .append(getFlagsAsString())
               .append(" [");
         for (RelationMember rm:getMembers()) {
             result.append(OsmPrimitiveType.from(rm.getMember()))
-                  .append(" ")
+                  .append(' ')
                   .append(rm.getMember().getUniqueId())
                   .append(", ");
         }
         result.delete(result.length()-2, result.length())
-              .append("]")
-              .append("}");
+              .append("]}");
         return result.toString();
     }
Index: /trunk/src/org/openstreetmap/josm/data/osm/TigerUtils.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/TigerUtils.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/osm/TigerUtils.java	(revision 8390)
@@ -60,5 +60,5 @@
         for (Object part : resultSet) {
             if (combined.length() > 0) {
-                combined.append(":");
+                combined.append(':');
             }
             combined.append(part);
Index: /trunk/src/org/openstreetmap/josm/data/osm/history/History.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/history/History.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/osm/history/History.java	(revision 8390)
@@ -341,8 +341,8 @@
             result.append(", versions=\n");
             for (HistoryOsmPrimitive v : versions) {
-                result.append("\t").append(v).append(",\n");
+                result.append('\t').append(v).append(",\n");
             }
         }
-        result.append("]");
+        result.append(']');
         return result.toString();
     }
Index: /trunk/src/org/openstreetmap/josm/data/preferences/IntegerProperty.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/preferences/IntegerProperty.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/preferences/IntegerProperty.java	(revision 8390)
@@ -6,4 +6,5 @@
 /**
  * A property containing an {@code Integer} value.
+ * @since 3246
  */
 public class IntegerProperty extends AbstractProperty<Integer> {
@@ -35,11 +36,9 @@
      */
     public boolean parseAndPut(String value) {
-        Integer intVal;
         try {
-            intVal = Integer.parseInt(value);
+            return put(Integer.valueOf(value));
         } catch (NumberFormatException ex) {
             return false;
         }
-        return put(intVal);
     }
 }
Index: /trunk/src/org/openstreetmap/josm/data/projection/CustomProjection.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/projection/CustomProjection.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/projection/CustomProjection.java	(revision 8390)
@@ -335,5 +335,5 @@
         for (String str : numStr) {
             try {
-                towgs84Param.add(Double.parseDouble(str));
+                towgs84Param.add(Double.valueOf(str));
             } catch (NumberFormatException e) {
                 throw new ProjectionConfigurationException(tr("Unable to parse value of parameter ''towgs84'' (''{0}'')", str), e);
@@ -496,5 +496,5 @@
         if (code != null && code.startsWith("EPSG:")) {
             try {
-                return Integer.parseInt(code.substring(5));
+                return Integer.valueOf(code.substring(5));
             } catch (NumberFormatException e) {
                 Main.warn(e);
Index: /trunk/src/org/openstreetmap/josm/data/validation/TestError.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/TestError.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/validation/TestError.java	(revision 8390)
@@ -187,5 +187,5 @@
         }
         for (String o : strings) {
-            ignorestring.append(":").append(o);
+            ignorestring.append(':').append(o);
         }
         return ignorestring.toString();
Index: /trunk/src/org/openstreetmap/josm/data/validation/routines/RegexValidator.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/routines/RegexValidator.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/validation/routines/RegexValidator.java	(revision 8390)
@@ -182,5 +182,5 @@
                     return matcher.group(1);
                 }
-                StringBuffer buffer = new StringBuffer();
+                StringBuilder buffer = new StringBuilder();
                 for (int j = 0; j < count; j++) {
                     String component = matcher.group(j+1);
@@ -201,15 +201,14 @@
     @Override
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder buffer = new StringBuilder();
         buffer.append("RegexValidator{");
         for (int i = 0; i < patterns.length; i++) {
             if (i > 0) {
-                buffer.append(",");
+                buffer.append(',');
             }
             buffer.append(patterns[i].pattern());
         }
-        buffer.append("}");
+        buffer.append('}');
         return buffer.toString();
     }
-
 }
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/Highways.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/Highways.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/Highways.java	(revision 8390)
@@ -43,5 +43,5 @@
      * Classified highways in order of importance
      */
-    protected static final List<String> CLASSIFIED_HIGHWAYS = Arrays.asList(
+    private static final Set<String> CLASSIFIED_HIGHWAYS = new HashSet<>(Arrays.asList(
             "motorway",  "motorway_link",
             "trunk",     "trunk_link",
@@ -51,10 +51,10 @@
             "unclassified",
             "residential",
-            "living_street");
-
-    protected static final List<String> KNOWN_SOURCE_MAXSPEED_CONTEXTS = Arrays.asList(
-            "urban", "rural", "zone", "zone30", "zone:30", "nsl_single", "nsl_dual", "motorway", "trunk", "living_street", "bicycle_road");
-
-    protected static final List<String> ISO_COUNTRIES = Arrays.asList(Locale.getISOCountries());
+            "living_street"));
+
+    private static final Set<String> KNOWN_SOURCE_MAXSPEED_CONTEXTS = new HashSet<>(Arrays.asList(
+            "urban", "rural", "zone", "zone30", "zone:30", "nsl_single", "nsl_dual", "motorway", "trunk", "living_street", "bicycle_road"));
+
+    private static final Set<String> ISO_COUNTRIES = new HashSet<>(Arrays.asList(Locale.getISOCountries()));
 
     private boolean leftByPedestrians = false;
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java	(revision 8390)
@@ -246,5 +246,5 @@
 
         static final String possibleThrows() {
-            StringBuffer sb = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
             for (Severity s : Severity.values()) {
                 if (sb.length() > 0) {
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java	(revision 8390)
@@ -261,5 +261,5 @@
                 }
                 if (expression.length() > 0) {
-                    expression.append("|");
+                    expression.append('|');
                 }
                 expression.append(Pattern.quote(words[i]));
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/UnclosedWays.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/UnclosedWays.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/UnclosedWays.java	(revision 8390)
@@ -9,5 +9,4 @@
 import java.util.Collections;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Set;
 
@@ -47,5 +46,5 @@
         private final String engMessage;
         /** The special values, to be ignored if ignore is set to true; to be considered only if ignore is set to false */
-        private final List<String> specialValues;
+        private final Set<String> specialValues;
         /** The boolean indicating if special values must be ignored or considered only */
         private final boolean ignore;
@@ -58,5 +57,5 @@
          */
         public UnclosedWaysCheck(int code, String key, String engMessage) {
-            this(code, key, engMessage, Collections.<String>emptyList());
+            this(code, key, engMessage, Collections.<String>emptySet());
         }
 
@@ -68,5 +67,5 @@
          * @param ignoredValues The ignored values.
          */
-        public UnclosedWaysCheck(int code, String key, String engMessage, List<String> ignoredValues) {
+        public UnclosedWaysCheck(int code, String key, String engMessage, Set<String> ignoredValues) {
             this(code, key, engMessage, ignoredValues, true);
         }
@@ -80,5 +79,5 @@
          * @param ignore indicates if special values must be ignored or considered only
          */
-        public UnclosedWaysCheck(int code, String key, String engMessage, List<String> specialValues, boolean ignore) {
+        public UnclosedWaysCheck(int code, String key, String engMessage, Set<String> specialValues, boolean ignore) {
             this.code = code;
             this.key = key;
@@ -137,12 +136,17 @@
 
     private final UnclosedWaysCheck[] checks = {
-        new UnclosedWaysCheck(1101, "natural",   marktr("natural type {0}"), Arrays.asList("coastline", "cliff", "tree_row", "ridge", "arete", "gorge")),
+        new UnclosedWaysCheck(1101, "natural",   marktr("natural type {0}"),
+                new HashSet<>(Arrays.asList("coastline", "cliff", "tree_row", "ridge", "arete", "gorge"))),
         new UnclosedWaysCheck(1102, "landuse",   marktr("landuse type {0}")),
         new UnclosedWaysCheck(1103, "amenities", marktr("amenities type {0}")),
-        new UnclosedWaysCheck(1104, "sport",     marktr("sport type {0}"), Arrays.asList("water_slide", "climbing")),
-        new UnclosedWaysCheck(1105, "tourism",   marktr("tourism type {0}"), Arrays.asList("attraction", "artwork")),
+        new UnclosedWaysCheck(1104, "sport",     marktr("sport type {0}"),
+                new HashSet<>(Arrays.asList("water_slide", "climbing"))),
+        new UnclosedWaysCheck(1105, "tourism",   marktr("tourism type {0}"),
+                new HashSet<>(Arrays.asList("attraction", "artwork"))),
         new UnclosedWaysCheck(1106, "shop",      marktr("shop type {0}")),
-        new UnclosedWaysCheck(1107, "leisure",   marktr("leisure type {0}"), Arrays.asList("track", "slipway")),
-        new UnclosedWaysCheck(1108, "waterway",  marktr("waterway type {0}"), Arrays.asList("riverbank"), false),
+        new UnclosedWaysCheck(1107, "leisure",   marktr("leisure type {0}"),
+                new HashSet<>(Arrays.asList("track", "slipway"))),
+        new UnclosedWaysCheck(1108, "waterway",  marktr("waterway type {0}"),
+                new HashSet<>(Arrays.asList("riverbank")), false),
         new UnclosedWaysCheck(1109, "boundary", marktr("boundary type {0}")),
         new UnclosedWaysBooleanCheck(1120, "building", marktr("building")),
Index: /trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java	(revision 8390)
@@ -183,5 +183,6 @@
             }
             if (node.getCoor() != null) {
-                name.append(" \u200E(").append(node.getCoor().latToString(CoordinateFormat.getDefaultFormat())).append(", ").append(node.getCoor().lonToString(CoordinateFormat.getDefaultFormat())).append(")");
+                name.append(" \u200E(").append(node.getCoor().latToString(CoordinateFormat.getDefaultFormat())).append(", ")
+                    .append(node.getCoor().lonToString(CoordinateFormat.getDefaultFormat())).append(')');
             }
         }
@@ -287,5 +288,5 @@
             /* I18n: count of nodes as parameter */
             String nodes = trn("{0} node", "{0} nodes", nodesNo, nodesNo);
-            name.append(mark).append(" (").append(nodes).append(")");
+            name.append(mark).append(" (").append(nodes).append(')');
         }
         decorateNameWithId(name, way);
@@ -337,5 +338,5 @@
             }
 
-            name.append(")");
+            name.append(')');
         }
         decorateNameWithId(name, relation);
@@ -363,5 +364,5 @@
         } else {
             preset.nameTemplate.appendText(result, relation);
-            result.append("(");
+            result.append('(');
         }
     }
@@ -512,8 +513,7 @@
     private String buildDefaultToolTip(long id, Map<String, String> tags) {
         StringBuilder sb = new StringBuilder();
-        sb.append("<html>")
-        .append("<strong>id</strong>=")
-        .append(id)
-        .append("<br>");
+        sb.append("<html><strong>id</strong>=")
+          .append(id)
+          .append("<br>");
         List<String> keyList = new ArrayList<>(tags.keySet());
         Collections.sort(keyList);
@@ -524,7 +524,6 @@
             String key = keyList.get(i);
             sb.append("<strong>")
-            .append(key)
-            .append("</strong>")
-            .append("=");
+              .append(key)
+              .append("</strong>=");
             String value = tags.get(key);
             while(value.length() != 0) {
@@ -583,5 +582,5 @@
             .append(", ")
             .append(coord.lonToString(CoordinateFormat.getDefaultFormat()))
-            .append(")");
+            .append(')');
         }
         decorateNameWithId(sb, node);
@@ -671,5 +670,5 @@
 
         int mbno = relation.getNumMembers();
-        sb.append(trn("{0} member", "{0} members", mbno, mbno)).append(")");
+        sb.append(trn("{0} member", "{0} members", mbno, mbno)).append(')');
 
         decorateNameWithId(sb, relation);
Index: /trunk/src/org/openstreetmap/josm/gui/ExtendedDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/ExtendedDialog.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/ExtendedDialog.java	(revision 8390)
@@ -15,5 +15,7 @@
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 import javax.swing.AbstractAction;
@@ -86,5 +88,5 @@
     private String[] bToolTipTexts;
     private transient Icon[] bIcons;
-    private transient List<Integer> cancelButtonIdx = Collections.emptyList();
+    private transient Set<Integer> cancelButtonIdx = Collections.emptySet();
     private int defaultButtonIdx = 1;
     protected JButton defaultButton = null;
@@ -561,5 +563,5 @@
      */
     public ExtendedDialog setCancelButton(Integer... cancelButtonIdx) {
-        this.cancelButtonIdx = Arrays.<Integer>asList(cancelButtonIdx);
+        this.cancelButtonIdx = new HashSet<>(Arrays.<Integer>asList(cancelButtonIdx));
         return this;
     }
Index: /trunk/src/org/openstreetmap/josm/gui/MapStatus.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MapStatus.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/MapStatus.java	(revision 8390)
@@ -572,5 +572,5 @@
          */
         private JLabel popupBuildPrimitiveLabels(final OsmPrimitive osm) {
-            final StringBuilder text = new StringBuilder();
+            final StringBuilder text = new StringBuilder(32);
             String name = osm.getDisplayName(DefaultNameFormatter.getInstance());
             if (osm.isNewOrUndeleted() || osm.isModified()) {
@@ -583,17 +583,17 @@
 
             if (!osm.isNew() && !idShown) {
-                text.append(" [id="+osm.getId()+"]");
+                text.append(" [id=").append(osm.getId()).append(']');
             }
 
             if(osm.getUser() != null) {
-                text.append(" [" + tr("User:") + " " + osm.getUser().getName() + "]");
+                text.append(" [").append(tr("User:")).append(' ').append(osm.getUser().getName()).append(']');
             }
 
             for (String key : osm.keySet()) {
-                text.append("<br>" + key + "=" + osm.get(key));
+                text.append("<br>").append(key).append('=').append(osm.get(key));
             }
 
             final JLabel l = new JLabel(
-                    "<html>" +text.toString() + "</html>",
+                    "<html>" + text.toString() + "</html>",
                     ImageProvider.get(osm.getDisplayType()),
                     JLabel.HORIZONTAL
@@ -601,5 +601,6 @@
                 // This is necessary so the label updates its colors when the
                 // selection is changed from the outside
-                @Override public void validate() {
+                @Override
+                public void validate() {
                     super.validate();
                     popupSetLabelColors(this, osm);
@@ -613,12 +614,15 @@
             l.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
             l.addMouseListener(new MouseAdapter(){
-                @Override public void mouseEntered(MouseEvent e) {
+                @Override
+                public void mouseEntered(MouseEvent e) {
                     l.setBackground(SystemColor.info);
                     l.setForeground(SystemColor.infoText);
                 }
-                @Override public void mouseExited(MouseEvent e) {
+                @Override
+                public void mouseExited(MouseEvent e) {
                     popupSetLabelColors(l, osm);
                 }
-                @Override public void mouseClicked(MouseEvent e) {
+                @Override
+                public void mouseClicked(MouseEvent e) {
                     DataSet ds = Main.main.getCurrentDataSet();
                     // Let the user toggle the selection
Index: /trunk/src/org/openstreetmap/josm/gui/MapView.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 8390)
@@ -26,6 +26,7 @@
 import java.util.Collections;
 import java.util.Comparator;
-import java.util.LinkedList;
+import java.util.LinkedHashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.concurrent.CopyOnWriteArrayList;
 
@@ -224,5 +225,5 @@
     public MouseEvent lastMEvent = new MouseEvent(this, 0, 0, 0, 0, 0, 0, false); // In case somebody reads it before first mouse move
 
-    private final transient List<MapViewPaintable> temporaryLayers = new LinkedList<>();
+    private final transient Set<MapViewPaintable> temporaryLayers = new LinkedHashSet<>();
 
     private transient BufferedImage nonChangedLayersBuffer;
Index: /trunk/src/org/openstreetmap/josm/gui/bbox/TileSelectionBBoxChooser.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/bbox/TileSelectionBBoxChooser.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/bbox/TileSelectionBBoxChooser.java	(revision 8390)
@@ -651,8 +651,8 @@
         @Override
         public String toString() {
-            StringBuilder sb = new StringBuilder();
-            sb.append("min=").append(min.x).append(",").append(min.y).append(",")
-              .append("max=").append(max.x).append(",").append(max.y).append(",")
-              .append("zoom=").append(zoomLevel);
+            StringBuilder sb = new StringBuilder(24);
+            sb.append("min=").append(min.x).append(',').append(min.y)
+              .append(",max=").append(max.x).append(',').append(max.y)
+              .append(",zoom=").append(zoomLevel);
             return sb.toString();
         }
Index: /trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMergeModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMergeModel.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMergeModel.java	(revision 8390)
@@ -14,7 +14,9 @@
 import java.util.ArrayList;
 import java.util.EnumMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Observable;
+import java.util.Set;
 
 import javax.swing.AbstractListModel;
@@ -85,5 +87,5 @@
     protected EntriesSelectionModel mergedEntriesSelectionModel;
 
-    private final List<PropertyChangeListener> listeners;
+    private final Set<PropertyChangeListener> listeners;
     private boolean isFrozen = false;
     private final ComparePairListModel comparePairListModel;
@@ -199,5 +201,5 @@
         mergedEntriesSelectionModel =  new EntriesSelectionModel(entries.get(MERGED_ENTRIES));
 
-        listeners = new ArrayList<>();
+        listeners = new HashSet<>();
         comparePairListModel = new ComparePairListModel();
 
@@ -207,5 +209,5 @@
     public void addPropertyChangeListener(PropertyChangeListener listener) {
         synchronized(listeners) {
-            if (listener != null && ! listeners.contains(listener)) {
+            if (listener != null && !listeners.contains(listener)) {
                 listeners.add(listener);
             }
Index: /trunk/src/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMerger.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMerger.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMerger.java	(revision 8390)
@@ -290,9 +290,9 @@
             return tr("(none)");
         StringBuilder sb = new StringBuilder();
-        sb.append("(")
+        sb.append('(')
         .append(COORD_FORMATTER.format(coord.lat()))
-        .append(",")
+        .append(',')
         .append(COORD_FORMATTER.format(coord.lon()))
-        .append(")");
+        .append(')');
         return sb.toString();
     }
Index: /trunk/src/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeModel.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/pair/tags/TagMergeModel.java	(revision 8390)
@@ -36,5 +36,5 @@
 
     /** the property change listeners */
-    private final transient List<PropertyChangeListener> listeners;
+    private final transient Set<PropertyChangeListener> listeners;
 
     private int numUndecidedTags = 0;
@@ -45,5 +45,5 @@
     public TagMergeModel() {
         tagMergeItems = new ArrayList<>();
-        listeners = new ArrayList<>();
+        listeners = new HashSet<>();
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/conflict/pair/tags/TagMerger.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/pair/tags/TagMerger.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/pair/tags/TagMerger.java	(revision 8390)
@@ -13,6 +13,6 @@
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.HashSet;
+import java.util.Set;
 
 import javax.swing.AbstractAction;
@@ -331,8 +331,8 @@
      */
     static class AdjustmentSynchronizer implements AdjustmentListener {
-        private final List<Adjustable> synchronizedAdjustables;
+        private final Set<Adjustable> synchronizedAdjustables;
 
         public AdjustmentSynchronizer() {
-            synchronizedAdjustables = new ArrayList<>();
+            synchronizedAdjustables = new HashSet<>();
         }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/LatLonDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/LatLonDialog.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/LatLonDialog.java	(revision 8390)
@@ -46,5 +46,5 @@
     private EastNorth eastNorthCoordinates;
 
-    private static final double ZERO = 0.0;
+    private static final Double ZERO = 0.0;
     private static final String DEG = "\u00B0";
     private static final String MIN = "\u2032";
@@ -349,6 +349,6 @@
         if (mXml.matches()) {
             setLatLonObj(latLon,
-                    Double.parseDouble(mXml.group(1).replace(',', '.')), ZERO, ZERO, "N",
-                    Double.parseDouble(mXml.group(2).replace(',', '.')), ZERO, ZERO, "E");
+                    Double.valueOf(mXml.group(1).replace(',', '.')), ZERO, ZERO, "N",
+                    Double.valueOf(mXml.group(2).replace(',', '.')), ZERO, ZERO, "E");
         } else {
             final Matcher m = P.matcher(coord);
@@ -360,8 +360,8 @@
                 if (m.group(1) != null) {
                     sb.append('R');     // floating point number
-                    list.add(Double.parseDouble(m.group(1).replace(',', '.')));
+                    list.add(Double.valueOf(m.group(1).replace(',', '.')));
                 } else if (m.group(2) != null) {
                     sb.append('Z');     // integer number
-                    list.add(Double.parseDouble(m.group(2)));
+                    list.add(Double.valueOf(m.group(2)));
                 } else if (m.group(3) != null) {
                     sb.append('o');     // degree sign
@@ -373,5 +373,5 @@
                     sb.append(',');     // separator
                 } else if (m.group(7) != null) {
-                    sb.append("x");     // cardinal direction
+                    sb.append('x');     // cardinal direction
                     String c = m.group(7).toUpperCase();
                     if ("N".equals(c) || "S".equals(c) || "E".equals(c) || "W".equals(c)) {
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetListCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetListCellRenderer.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetListCellRenderer.java	(revision 8390)
@@ -40,9 +40,9 @@
         } else {
             String comment = cs.get("comment");
-            sb.append(cs.getId());
-            sb.append(" - ");
-            sb.append(cs.isOpen() ? tr("open") : tr("closed"));
+            sb.append(cs.getId())
+              .append(" - ")
+              .append(cs.isOpen() ? tr("open") : tr("closed"));
             if (comment != null) {
-                sb.append(" - ").append("'").append(comment).append("'");
+                sb.append(" - '").append(comment).append('\'');
             }
         }
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesCellRenderer.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesCellRenderer.java	(revision 8390)
@@ -79,5 +79,5 @@
                         sb.append(trn(", {0} unset", ", {0} unset", blankCount, blankCount));
                     }
-                    sb.append(">");
+                    sb.append('>');
                     str = sb.toString();
                     c.setFont(c.getFont().deriveFont(Font.ITALIC));
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 8390)
@@ -1282,5 +1282,5 @@
                     t = "type:relation ";
                 }
-                s.append(sep).append("(").append(t).append("\"").append(
+                s.append(sep).append('(').append(t).append('"').append(
                         org.openstreetmap.josm.actions.search.SearchAction.escapeStringForSearch(key)).append("\"=\"").append(
                         org.openstreetmap.josm.actions.search.SearchAction.escapeStringForSearch(val)).append("\")");
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/RelationEditor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/RelationEditor.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/RelationEditor.java	(revision 8390)
@@ -8,7 +8,7 @@
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
-import java.util.ArrayList;
 import java.util.Collection;
-import java.util.List;
+import java.util.LinkedHashSet;
+import java.util.Set;
 
 import org.openstreetmap.josm.Main;
@@ -32,5 +32,5 @@
 
     /** the list of registered relation editor classes */
-    private static List<Class<RelationEditor>> editors = new ArrayList<>();
+    private static Set<Class<RelationEditor>> editors = new LinkedHashSet<>();
 
     /**
Index: /trunk/src/org/openstreetmap/josm/gui/download/BookmarkList.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/BookmarkList.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/download/BookmarkList.java	(revision 8390)
@@ -214,13 +214,11 @@
         protected String buildToolTipText(Bookmark b) {
             Bounds area = b.getArea();
-            StringBuilder sb = new StringBuilder();
+            StringBuilder sb = new StringBuilder(128);
             sb.append("<html>min[latitude,longitude]=<strong>[")
-            .append(area.getMinLat()).append(",").append(area.getMinLon()).append("]</strong>")
-            .append("<br>")
-            .append("max[latitude,longitude]=<strong>[")
-            .append(area.getMaxLat()).append(",").append(area.getMaxLon()).append("]</strong>")
-            .append("</html>");
+              .append(area.getMinLat()).append(',').append(area.getMinLon()).append("]</strong>")
+              .append("<br>max[latitude,longitude]=<strong>[")
+              .append(area.getMaxLat()).append(',').append(area.getMaxLon()).append("]</strong>")
+              .append("</html>");
             return sb.toString();
-
         }
 
Index: /trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java	(revision 8390)
@@ -539,7 +539,7 @@
                     line.append(t);
                 } else if (line.length() < 80) {
-                    line.append(" ").append(t);
+                    line.append(' ').append(t);
                 } else {
-                    line.append(" ").append(t).append("<br>");
+                    line.append(' ').append(t).append("<br>");
                     ret.append(line);
                     line = new StringBuilder();
Index: /trunk/src/org/openstreetmap/josm/gui/help/HelpBrowser.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/help/HelpBrowser.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/help/HelpBrowser.java	(revision 8390)
@@ -144,5 +144,5 @@
             while ((line = reader.readLine()) != null) {
                 css.append(line);
-                css.append("\n");
+                css.append('\n');
             }
         } catch (Exception e) {
Index: /trunk/src/org/openstreetmap/josm/gui/history/SelectionSynchronizer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/history/SelectionSynchronizer.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/history/SelectionSynchronizer.java	(revision 8390)
@@ -2,6 +2,6 @@
 package org.openstreetmap.josm.gui.history;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.HashSet;
+import java.util.Set;
 
 import javax.swing.DefaultListSelectionModel;
@@ -12,5 +12,5 @@
 public class SelectionSynchronizer implements ListSelectionListener {
 
-    private List<ListSelectionModel> participants;
+    private final Set<ListSelectionModel> participants;
 
     /**
@@ -18,5 +18,5 @@
      */
     public SelectionSynchronizer() {
-        participants = new ArrayList<>();
+        participants = new HashSet<>();
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/io/ChangesetCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/ChangesetCellRenderer.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/io/ChangesetCellRenderer.java	(revision 8390)
@@ -35,6 +35,5 @@
     protected String buildToolTipText(Changeset cs) {
         StringBuilder sb = new StringBuilder();
-        sb.append("<html>")
-          .append("<strong>").append(tr("Changeset id:")).append("</strong>").append(cs.getId()).append("<br>");
+        sb.append("<html><strong>").append(tr("Changeset id:")).append("</strong>").append(cs.getId()).append("<br>");
         if (cs.getCreatedAt() != null) {
             sb.append("<strong>").append(tr("Created at:")).append("</strong>").append(
Index: /trunk/src/org/openstreetmap/josm/gui/io/UploadParameterSummaryPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/UploadParameterSummaryPanel.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/io/UploadParameterSummaryPanel.java	(revision 8390)
@@ -32,5 +32,5 @@
 
     protected String buildChangesetSummary() {
-        StringBuilder msg = new StringBuilder();
+        StringBuilder msg = new StringBuilder(96);
         if (selectedChangeset == null || selectedChangeset.isNew()) {
             msg.append(tr("Objects are uploaded to a <strong>new changeset</strong>."));
@@ -43,5 +43,5 @@
             ));
         }
-        msg.append(" ");
+        msg.append(' ');
         if (closeChangesetAfterNextUpload) {
             msg.append(tr("The changeset is going to be <strong>closed</strong> after this upload"));
@@ -49,5 +49,5 @@
             msg.append(tr("The changeset is <strong>left open</strong> after this upload"));
         }
-        msg.append(" (<a href=\"urn:changeset-configuration\">" + tr("configure changeset") + "</a>)");
+        msg.append(" (<a href=\"urn:changeset-configuration\">").append(tr("configure changeset")).append("</a>)");
         return msg.toString();
     }
Index: /trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 8390)
@@ -120,5 +120,5 @@
     @Override
     public Object getInfoComponent() {
-        StringBuilder info = new StringBuilder();
+        StringBuilder info = new StringBuilder(48);
 
         if (data.attr.containsKey("name")) {
@@ -131,10 +131,10 @@
 
         if (!data.tracks.isEmpty()) {
-            info.append("<table><thead align='center'><tr><td colspan='5'>"
-                    + trn("{0} track", "{0} tracks", data.tracks.size(), data.tracks.size())
-                    + "</td></tr><tr align='center'><td>" + tr("Name") + "</td><td>"
-                    + tr("Description") + "</td><td>" + tr("Timespan")
-                    + "</td><td>" + tr("Length") + "</td><td>" + tr("URL")
-                    + "</td></tr></thead>");
+            info.append("<table><thead align='center'><tr><td colspan='5'>")
+                .append(trn("{0} track", "{0} tracks", data.tracks.size(), data.tracks.size()))
+                .append("</td></tr><tr align='center'><td>").append(tr("Name")).append("</td><td>")
+                .append(tr("Description")).append("</td><td>").append(tr("Timespan"))
+                .append("</td><td>").append(tr("Length")).append("</td><td>").append(tr("URL"))
+                .append("</td></tr></thead>");
 
             for (GpxTrack trk : data.tracks) {
@@ -145,5 +145,5 @@
                 info.append("</td><td>");
                 if (trk.getAttributes().containsKey(GpxConstants.GPX_DESC)) {
-                    info.append(" ").append(trk.get(GpxConstants.GPX_DESC));
+                    info.append(' ').append(trk.get(GpxConstants.GPX_DESC));
                 }
                 info.append("</td><td>");
@@ -209,5 +209,5 @@
     @Override
     public String getToolTipText() {
-        StringBuilder info = new StringBuilder().append("<html>");
+        StringBuilder info = new StringBuilder(48).append("<html>");
 
         if (data.attr.containsKey(GpxConstants.META_NAME)) {
@@ -223,6 +223,5 @@
             .append(trn("{0} waypoint", "{0} waypoints", data.waypoints.size(), data.waypoints.size())).append("<br>")
             .append(tr("Length: {0}", NavigatableComponent.getSystemOfMeasurement().getDistText(data.length())))
-            .append("<br>")
-            .append("</html>");
+            .append("<br></html>");
         return info.toString();
     }
Index: /trunk/src/org/openstreetmap/josm/gui/layer/NoteLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/NoteLayer.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/NoteLayer.java	(revision 8390)
@@ -113,5 +113,5 @@
             StringBuilder sb = new StringBuilder("<html>");
             sb.append(tr("Note"))
-              .append(" ").append(noteData.getSelectedNote().getId());
+              .append(' ').append(noteData.getSelectedNote().getId());
             for (NoteComment comment : noteData.getSelectedNote().getComments()) {
                 String commentText = comment.getText();
@@ -196,11 +196,11 @@
         StringBuilder sb = new StringBuilder();
         sb.append(tr("Notes layer"))
-          .append("\n")
+          .append('\n')
           .append(tr("Total notes:"))
-          .append(" ")
+          .append(' ')
           .append(noteData.getNotes().size())
-          .append("\n")
+          .append('\n')
           .append(tr("Changes need uploading?"))
-          .append(" ")
+          .append(' ')
           .append(isModified());
         return sb.toString();
Index: /trunk/src/org/openstreetmap/josm/gui/layer/TMSLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/TMSLayer.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/TMSLayer.java	(revision 8390)
@@ -524,12 +524,12 @@
                     ed.setIcon(JOptionPane.INFORMATION_MESSAGE);
                     StringBuilder content = new StringBuilder();
-                    content.append("Tile name: ").append(clickedTile.getKey()).append("\n");
+                    content.append("Tile name: ").append(clickedTile.getKey()).append('\n');
                     try {
-                        content.append("Tile url: ").append(clickedTile.getUrl()).append("\n");
+                        content.append("Tile url: ").append(clickedTile.getUrl()).append('\n');
                     } catch (IOException e) {
                     }
-                    content.append("Tile size: ").append(clickedTile.getTileSource().getTileSize()).append("x").append(clickedTile.getTileSource().getTileSize()).append("\n");
+                    content.append("Tile size: ").append(clickedTile.getTileSource().getTileSize()).append('x').append(clickedTile.getTileSource().getTileSize()).append('\n');
                     Rectangle displaySize = tileToRect(clickedTile);
-                    content.append("Tile display size: ").append(displaySize.width).append("x").append(displaySize.height).append("\n");
+                    content.append("Tile display size: ").append(displaySize.width).append('x').append(displaySize.height).append('\n');
                     ed.setContent(content.toString());
                     ed.showDialog();
Index: /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 8390)
@@ -120,5 +120,5 @@
             if (exts != null && exts.containsKey("offset")) {
                 try {
-                    offset = Double.parseDouble(exts.get("offset"));
+                    offset = Double.valueOf(exts.get("offset"));
                 } catch (NumberFormatException nfe) {
                     Main.warn(nfe);
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/Cascade.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/Cascade.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/Cascade.java	(revision 8390)
@@ -127,7 +127,9 @@
         if (o instanceof String && !((String) o).isEmpty()) {
             try {
-                return Float.parseFloat((String) o);
+                return Float.valueOf((String) o);
             } catch (NumberFormatException e) {
-                Main.debug("'"+o+"' cannot be converted to float");
+                if (Main.isDebugEnabled()) {
+                    Main.debug("'"+o+"' cannot be converted to float");
+                }
             }
         }
@@ -217,5 +219,5 @@
             res.append("; ");
         }
-        return res.append("}").toString();
+        return res.append('}').toString();
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/StyleSetting.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/StyleSetting.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/StyleSetting.java	(revision 8390)
@@ -4,8 +4,10 @@
 import java.awt.event.ActionEvent;
 import java.util.Arrays;
+
 import javax.swing.AbstractAction;
 import javax.swing.Action;
 import javax.swing.JCheckBoxMenuItem;
 import javax.swing.JMenu;
+
 import org.openstreetmap.josm.Main;
 
@@ -91,7 +93,6 @@
             String val = Main.pref.get(prefKey, null);
             if (val == null) return def;
-            return Boolean.parseBoolean(val);
+            return Boolean.valueOf(val);
         }
-
     }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/TextElement.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/TextElement.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/TextElement.java	(revision 8390)
@@ -177,17 +177,17 @@
 
     protected String toStringImpl() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("labelCompositionStrategy=" + labelCompositionStrategy)
-          .append(" font=" + font);
+        StringBuilder sb = new StringBuilder(96);
+        sb.append("labelCompositionStrategy=").append(labelCompositionStrategy)
+          .append(" font=").append(font);
         if (xOffset != 0) {
-            sb.append(" xOffset=" + xOffset);
+            sb.append(" xOffset=").append(xOffset);
         }
         if (yOffset != 0) {
-            sb.append(" yOffset=" + yOffset);
-        }
-        sb.append(" color=" + Utils.toString(color));
+            sb.append(" yOffset=").append(yOffset);
+        }
+        sb.append(" color=").append(Utils.toString(color));
         if (haloRadius != null) {
-            sb.append(" haloRadius=" + haloRadius)
-              .append(" haloColor=" + haloColor);
+            sb.append(" haloRadius=").append(haloRadius)
+              .append(" haloColor=").append(haloColor);
         }
         return sb.toString();
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java	(revision 8390)
@@ -1140,9 +1140,8 @@
         public String toString() {
             StringBuilder b = new StringBuilder("ParameterFunction~");
-            b.append(m.getName()).append("(");
+            b.append(m.getName()).append('(');
             for (int i = 0; i < args.size(); ++i) {
-                if (i > 0) b.append(",");
-                b.append(expectedParameterTypes[i]);
-                b.append(" ").append(args.get(i));
+                if (i > 0) b.append(',');
+                b.append(expectedParameterTypes[i]).append(' ').append(args.get(i));
             }
             b.append(')');
@@ -1205,9 +1204,8 @@
         public String toString() {
             StringBuilder b = new StringBuilder("ArrayFunction~");
-            b.append(m.getName()).append("(");
+            b.append(m.getName()).append('(');
             for (int i = 0; i < args.size(); ++i) {
-                if (i > 0) b.append(",");
-                b.append(arrayComponentType);
-                b.append(" ").append(args.get(i));
+                if (i > 0) b.append(',');
+                b.append(arrayComponentType).append(' ').append(args.get(i));
             }
             b.append(')');
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/xml/XmlCondition.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/xml/XmlCondition.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/xml/XmlCondition.java	(revision 8390)
@@ -46,5 +46,5 @@
             sb.append(",v=").append(value);
 
-        sb.append("]");
+        sb.append(']');
     }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/xml/XmlStyleSourceHandler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/xml/XmlStyleSourceHandler.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/xml/XmlStyleSourceHandler.java	(revision 8390)
@@ -81,5 +81,5 @@
             case "width":
                 String val = atts.getValue(count);
-                if (! (val.startsWith("+") || val.startsWith("-") || val.endsWith("%"))) {
+                if (!(val.startsWith("+") || val.startsWith("-") || val.endsWith("%"))) {
                     line.setWidth(Integer.parseInt(val));
                 }
@@ -89,5 +89,5 @@
                 break;
             case "realwidth":
-                line.realWidth = Integer.parseInt(atts.getValue(count));
+                line.realWidth = Integer.valueOf(atts.getValue(count));
                 break;
             case "dashed":
@@ -224,5 +224,5 @@
                         break;
                     case "annotate":
-                        rule.icon.annotate = Boolean.parseBoolean (atts.getValue(count));
+                        rule.icon.annotate = Boolean.valueOf(atts.getValue(count));
                         break;
                     case "priority":
Index: /trunk/src/org/openstreetmap/josm/gui/oauth/OsmOAuthAuthorizationClient.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/oauth/OsmOAuthAuthorizationClient.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/oauth/OsmOAuthAuthorizationClient.java	(revision 8390)
@@ -186,11 +186,10 @@
      */
     public String getAuthoriseUrl(OAuthToken requestToken) {
-        StringBuilder sb = new StringBuilder();
+        StringBuilder sb = new StringBuilder(32);
 
         // OSM is an OAuth 1.0 provider and JOSM isn't a web app. We just add the oauth request token to
         // the authorisation request, no callback parameter.
         //
-        sb.append(oauthProviderParameters.getAuthoriseUrl()).append("?")
-        .append(OAuth.OAUTH_TOKEN).append("=").append(requestToken.getKey());
+        sb.append(oauthProviderParameters.getAuthoriseUrl()).append('?'+OAuth.OAUTH_TOKEN+'=').append(requestToken.getKey());
         return sb.toString();
     }
@@ -249,5 +248,5 @@
 
     protected String buildPostRequest(Map<String,String> parameters) throws OsmOAuthAuthorizationException {
-        StringBuilder sb = new StringBuilder();
+        StringBuilder sb = new StringBuilder(32);
 
         for(Iterator<Entry<String,String>> it = parameters.entrySet().iterator(); it.hasNext();) {
@@ -255,7 +254,7 @@
             String value = entry.getValue();
             value = (value == null) ? "" : value;
-            sb.append(entry.getKey()).append("=").append(Utils.encodeUrl(value));
+            sb.append(entry.getKey()).append('=').append(Utils.encodeUrl(value));
             if (it.hasNext()) {
-                sb.append("&");
+                sb.append('&');
             }
         }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 8390)
@@ -1333,5 +1333,5 @@
                             } else if ("min-josm-version".equals(key)) {
                                 try {
-                                    last.minJosmVersion = Integer.parseInt(value);
+                                    last.minJosmVersion = Integer.valueOf(value);
                                 } catch (NumberFormatException e) {
                                     // ignore
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/AddTMSLayerPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/AddTMSLayerPanel.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/AddTMSLayerPanel.java	(revision 8390)
@@ -69,7 +69,7 @@
         String z = sanitize(tmsZoom.getText());
         if (!z.isEmpty()) {
-            a.append("[").append(z).append("]");
+            a.append('[').append(z).append(']');
         }
-        a.append(":").append(getImageryRawUrl());
+        a.append(':').append(getImageryRawUrl());
         return a.toString();
     }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginListPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginListPanel.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginListPanel.java	(revision 8390)
@@ -63,5 +63,5 @@
             sb.append(pi.version);
             if (pi.oldmode) {
-                sb.append("*");
+                sb.append('*');
             }
         }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java	(revision 8390)
@@ -88,5 +88,5 @@
         Collection<PluginInformation> failed = task.getFailedPlugins();
         StringBuilder sb = new StringBuilder();
-        if (! downloaded.isEmpty()) {
+        if (!downloaded.isEmpty()) {
             sb.append(trn(
                     "The following plugin has been downloaded <strong>successfully</strong>:",
@@ -97,9 +97,9 @@
             sb.append("<ul>");
             for(PluginInformation pi: downloaded) {
-                sb.append("<li>").append(pi.name).append(" (").append(pi.version).append(")").append("</li>");
+                sb.append("<li>").append(pi.name).append(" (").append(pi.version).append(")</li>");
             }
             sb.append("</ul>");
         }
-        if (! failed.isEmpty()) {
+        if (!failed.isEmpty()) {
             sb.append(trn(
                     "Downloading the following plugin has <strong>failed</strong>:",
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/projection/CustomProjectionChoice.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/projection/CustomProjectionChoice.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/projection/CustomProjectionChoice.java	(revision 8390)
@@ -169,24 +169,25 @@
         private JComponent build() {
             StringBuilder s = new StringBuilder();
-            s.append("<b>+proj=...</b> - <i>"+tr("Projection name")+"</i><br>")
-             .append("&nbsp;&nbsp;&nbsp;&nbsp;"+tr("Supported values:")+" ")
-             .append(listKeys(Projections.projs)+"<br>")
-             .append("<b>+lat_0=..., +lat_1=..., +lat_2=...</b> - <i>"+tr("Projection parameters")+"</i><br>")
-             .append("<b>+x_0=..., +y_0=...</b> - <i>"+tr("False easting and false northing")+"</i><br>")
-             .append("<b>+lon_0=...</b> - <i>"+tr("Central meridian")+"</i><br>")
-             .append("<b>+k_0=...</b> - <i>"+tr("Scaling factor")+"</i><br>")
-             .append("<b>+ellps=...</b> - <i>"+tr("Ellipsoid name")+"</i><br>")
-             .append("&nbsp;&nbsp;&nbsp;&nbsp;"+tr("Supported values:")+" ")
-             .append(listKeys(Projections.ellipsoids)+"<br>")
-             .append("<b>+a=..., +b=..., +rf=..., +f=..., +es=...</b> - <i>"+tr("Ellipsoid parameters")+"</i><br>")
-             .append("<b>+datum=...</b> - <i>"+tr("Datum name")+"</i><br>")
-             .append("&nbsp;&nbsp;&nbsp;&nbsp;"+tr("Supported values:")+" ")
-             .append(listKeys(Projections.datums)+"<br>")
-             .append("<b>+towgs84=...</b> - <i>"+tr("3 or 7 term datum transform parameters")+"</i><br>")
-             .append("<b>+nadgrids=...</b> - <i>"+tr("NTv2 grid file")+"</i><br>")
-             .append("&nbsp;&nbsp;&nbsp;&nbsp;"+tr("Built-in:")+" ")
-             .append(listKeys(Projections.nadgrids)+"<br>")
-             .append("<b>+bounds=</b>minlon,minlat,maxlon,maxlat - <i>"+tr("Projection bounds (in degrees)")+"</i><br>")
-             .append("<b>+wmssrs=</b>EPSG:123456 - <i>"+tr("Sets the SRS=... parameter in the WMS request")+"</i><br>");
+            s.append("<b>+proj=...</b> - <i>").append(tr("Projection name"))
+             .append("</i><br>&nbsp;&nbsp;&nbsp;&nbsp;").append(tr("Supported values:")).append(' ')
+             .append(listKeys(Projections.projs))
+             .append("<br><b>+lat_0=..., +lat_1=..., +lat_2=...</b> - <i>").append(tr("Projection parameters"))
+             .append("</i><br><b>+x_0=..., +y_0=...</b> - <i>").append(tr("False easting and false northing"))
+             .append("</i><br><b>+lon_0=...</b> - <i>").append(tr("Central meridian"))
+             .append("</i><br><b>+k_0=...</b> - <i>").append(tr("Scaling factor"))
+             .append("</i><br><b>+ellps=...</b> - <i>").append(tr("Ellipsoid name"))
+             .append("</i><br>&nbsp;&nbsp;&nbsp;&nbsp;").append(tr("Supported values:")).append(' ')
+             .append(listKeys(Projections.ellipsoids))
+             .append("<br><b>+a=..., +b=..., +rf=..., +f=..., +es=...</b> - <i>").append(tr("Ellipsoid parameters"))
+             .append("</i><br><b>+datum=...</b> - <i>").append(tr("Datum name"))
+             .append("</i><br>&nbsp;&nbsp;&nbsp;&nbsp;").append(tr("Supported values:")).append(' ')
+             .append(listKeys(Projections.datums))
+             .append("<br><b>+towgs84=...</b> - <i>").append(tr("3 or 7 term datum transform parameters"))
+             .append("</i><br><b>+nadgrids=...</b> - <i>").append(tr("NTv2 grid file"))
+             .append("</i><br>&nbsp;&nbsp;&nbsp;&nbsp;").append(tr("Built-in:")).append(' ')
+             .append(listKeys(Projections.nadgrids))
+             .append("<br><b>+bounds=</b>minlon,minlat,maxlon,maxlat - <i>").append(tr("Projection bounds (in degrees)"))
+             .append("</i><br><b>+wmssrs=</b>EPSG:123456 - <i>").append(tr("Sets the SRS=... parameter in the WMS request"))
+             .append("</i><br>");
 
             return new HtmlPanel(s.toString());
Index: /trunk/src/org/openstreetmap/josm/gui/tagging/TagModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/TagModel.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/TagModel.java	(revision 8390)
@@ -117,5 +117,5 @@
                 sb.append(values.get(i));
                 if (i + 1 < values.size()) {
-                    sb.append(";");
+                    sb.append(';');
                 }
             }
Index: /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java	(revision 8390)
@@ -1550,5 +1550,5 @@
             return null;
         try {
-            return Integer.parseInt(str);
+            return Integer.valueOf(str);
         } catch (Exception e) {
             if (Main.isTraceEnabled()) {
Index: /trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletionListItem.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletionListItem.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletionListItem.java	(revision 8390)
@@ -92,5 +92,5 @@
           .append("',")
           .append(priority)
-          .append(">");
+          .append('>');
         return sb.toString();
     }
Index: /trunk/src/org/openstreetmap/josm/gui/util/AdjustmentSynchronizer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/util/AdjustmentSynchronizer.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/util/AdjustmentSynchronizer.java	(revision 8390)
@@ -9,10 +9,10 @@
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
-import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.List;
+import java.util.HashSet;
 import java.util.Map;
 import java.util.Observable;
 import java.util.Observer;
+import java.util.Set;
 
 import javax.swing.JCheckBox;
@@ -28,5 +28,5 @@
 public class AdjustmentSynchronizer implements AdjustmentListener {
 
-    private final List<Adjustable> synchronizedAdjustables;
+    private final Set<Adjustable> synchronizedAdjustables;
     private final Map<Adjustable, Boolean> enabledMap;
 
@@ -37,5 +37,5 @@
      */
     public AdjustmentSynchronizer() {
-        synchronizedAdjustables = new ArrayList<>();
+        synchronizedAdjustables = new HashSet<>();
         enabledMap = new HashMap<>();
         observable = new Observable();
Index: /trunk/src/org/openstreetmap/josm/gui/util/CellEditorSupport.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/util/CellEditorSupport.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/util/CellEditorSupport.java	(revision 8390)
@@ -3,6 +3,7 @@
 
 import java.util.ArrayList;
-import java.util.LinkedList;
+import java.util.LinkedHashSet;
 import java.util.List;
+import java.util.Set;
 
 import javax.swing.CellEditor;
@@ -17,5 +18,5 @@
 public class CellEditorSupport {
     private final CellEditor editor;
-    private final List<CellEditorListener> listeners;
+    private final Set<CellEditorListener> listeners;
 
     /**
@@ -25,5 +26,5 @@
     public CellEditorSupport(CellEditor editor) {
         this.editor = editor;
-        this.listeners = new LinkedList<>();
+        this.listeners = new LinkedHashSet<>();
     }
 
@@ -40,5 +41,5 @@
     public final void addCellEditorListener(CellEditorListener l) {
         synchronized (this) {
-            if (l != null && ! listeners.contains(l)) {
+            if (l != null && !listeners.contains(l)) {
                 listeners.add(l);
             }
@@ -52,5 +53,5 @@
     public final void removeCellEditorListener(CellEditorListener l) {
         synchronized (this) {
-            if (l != null &&listeners.contains(l)) {
+            if (l != null && listeners.contains(l)) {
                 listeners.remove(l);
             }
Index: /trunk/src/org/openstreetmap/josm/gui/widgets/MultiSplitLayout.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/widgets/MultiSplitLayout.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/gui/widgets/MultiSplitLayout.java	(revision 8390)
@@ -1020,5 +1020,5 @@
         public String toString() {
             int nChildren = getChildren().size();
-            StringBuffer sb = new StringBuffer("MultiSplitLayout.Split");
+            StringBuilder sb = new StringBuilder("MultiSplitLayout.Split");
             sb.append(isRowLayout() ? " ROW [" : " COLUMN [")
               .append(nChildren + ((nChildren == 1) ? " child" : " children"))
@@ -1073,5 +1073,5 @@
         @Override
         public String toString() {
-            StringBuffer sb = new StringBuffer("MultiSplitLayout.Leaf");
+            StringBuilder sb = new StringBuilder("MultiSplitLayout.Leaf");
             sb.append(" \"")
               .append(getName())
Index: /trunk/src/org/openstreetmap/josm/io/AbstractParser.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/AbstractParser.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/AbstractParser.java	(revision 8390)
@@ -62,5 +62,5 @@
         Long l = 0L;
         try {
-            l = Long.parseLong(v);
+            l = Long.valueOf(v);
         } catch(NumberFormatException e) {
             throwException(tr("Illegal value for mandatory attribute ''{0}'' of type long. Got ''{1}''.", name, v), e);
Index: /trunk/src/org/openstreetmap/josm/io/AllFormatsImporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/AllFormatsImporter.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/AllFormatsImporter.java	(revision 8390)
@@ -13,4 +13,7 @@
  */
 public class AllFormatsImporter extends FileImporter {
+    /**
+     * Constructs a new {@code AllFormatsImporter}.
+     */
     public AllFormatsImporter() {
         super(new ExtensionFileFilter(getAllExtensions(), "", tr("All Formats")
@@ -18,5 +21,6 @@
     }
 
-    @Override public boolean acceptFile(File pathname) {
+    @Override
+    public boolean acceptFile(File pathname) {
         return false;
     }
@@ -34,6 +38,5 @@
                 continue;
             }
-            ext.append(fi.filter.getExtensions());
-            ext.append(",");
+            ext.append(fi.filter.getExtensions()).append(',');
         }
         // remove last comma
Index: /trunk/src/org/openstreetmap/josm/io/CachedFile.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/CachedFile.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/CachedFile.java	(revision 8390)
@@ -339,6 +339,5 @@
         StringBuilder prefKey = new StringBuilder("mirror.");
         if (destDir != null) {
-            prefKey.append(destDir);
-            prefKey.append(".");
+            prefKey.append(destDir).append('.');
         }
         prefKey.append(url.toString());
@@ -375,5 +374,5 @@
                 }
                 if (cachingStrategy == CachingStrategy.IfModifiedSince) {
-                    ifModifiedSince = Long.parseLong(localPathEntry.get(0));
+                    ifModifiedSince = Long.valueOf(localPathEntry.get(0));
                 }
             }
Index: /trunk/src/org/openstreetmap/josm/io/Capabilities.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/Capabilities.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/Capabilities.java	(revision 8390)
@@ -101,5 +101,5 @@
         String s = get(element, attribute);
         if (s == null) return null;
-        return Double.parseDouble(s);
+        return Double.valueOf(s);
     }
 
@@ -115,5 +115,5 @@
         String s = get(element, attribute);
         if (s == null) return null;
-        return Long.parseLong(s);
+        return Long.valueOf(s);
     }
 
@@ -197,5 +197,5 @@
         if (v != null) {
             try {
-                Long n = Long.parseLong(v);
+                long n = Long.parseLong(v);
                 if (n <= 0) {
                     warnIllegalValue("waynodes", "maximum", n);
Index: /trunk/src/org/openstreetmap/josm/io/ChangesetQuery.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/ChangesetQuery.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/ChangesetQuery.java	(revision 8390)
@@ -253,11 +253,11 @@
         StringBuilder sb = new StringBuilder();
         if (uid != null) {
-            sb.append("user").append("=").append(uid);
+            sb.append("user=").append(uid);
         } else if (userName != null) {
-            sb.append("display_name").append("=").append(Utils.encodeUrl(userName));
+            sb.append("display_name=").append(Utils.encodeUrl(userName));
         }
         if (bounds != null) {
             if (sb.length() > 0) {
-                sb.append("&");
+                sb.append('&');
             }
             sb.append("bbox=").append(bounds.encodeAsString(","));
@@ -265,25 +265,25 @@
         if (closedAfter != null && createdBefore != null) {
             if (sb.length() > 0) {
-                sb.append("&");
+                sb.append('&');
             }
             DateFormat df = DateUtils.newIsoDateTimeFormat();
-            sb.append("time").append("=").append(df.format(closedAfter));
-            sb.append(",").append(df.format(createdBefore));
+            sb.append("time=").append(df.format(closedAfter));
+            sb.append(',').append(df.format(createdBefore));
         } else if (closedAfter != null) {
             if (sb.length() > 0) {
-                sb.append("&");
+                sb.append('&');
             }
             DateFormat df = DateUtils.newIsoDateTimeFormat();
-            sb.append("time").append("=").append(df.format(closedAfter));
+            sb.append("time=").append(df.format(closedAfter));
         }
 
         if (open != null) {
             if (sb.length() > 0) {
-                sb.append("&");
+                sb.append('&');
             }
             sb.append("open=").append(Boolean.toString(open));
         } else if (closed != null) {
             if (sb.length() > 0) {
-                sb.append("&");
+                sb.append('&');
             }
             sb.append("closed=").append(Boolean.toString(closed));
@@ -291,5 +291,5 @@
             // since 2013-12-05, see https://github.com/openstreetmap/openstreetmap-website/commit/1d1f194d598e54a5d6fb4f38fb569d4138af0dc8
             if (sb.length() > 0) {
-                sb.append("&");
+                sb.append('&');
             }
             sb.append("changesets=").append(Utils.join(",", changesetIds));
Index: /trunk/src/org/openstreetmap/josm/io/GpxReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/GpxReader.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/GpxReader.java	(revision 8390)
@@ -397,5 +397,5 @@
                 case "pdop":
                     try {
-                        currentWayPoint.put(localName, Float.parseFloat(accumulator.toString()));
+                        currentWayPoint.put(localName, Float.valueOf(accumulator.toString()));
                     } catch(Exception e) {
                         currentWayPoint.put(localName, new Float(0));
Index: /trunk/src/org/openstreetmap/josm/io/MultiFetchServerObjectReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/MultiFetchServerObjectReader.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/MultiFetchServerObjectReader.java	(revision 8390)
@@ -256,6 +256,5 @@
 
     /**
-     * builds the Multi Get request string for a set of ids and a given
-     * {@link OsmPrimitiveType}.
+     * builds the Multi Get request string for a set of ids and a given {@link OsmPrimitiveType}.
      *
      * @param type The primitive type. Must be one of {@link OsmPrimitiveType#NODE NODE}, {@link OsmPrimitiveType#WAY WAY}, {@link OsmPrimitiveType#RELATION RELATION}
@@ -272,5 +271,5 @@
             sb.append(it.next());
             if (i < idPackage.size()-1) {
-                sb.append(",");
+                sb.append(',');
             }
         }
@@ -279,6 +278,5 @@
 
     /**
-     * builds the Multi Get request string for a single id and a given
-     * {@link OsmPrimitiveType}.
+     * builds the Multi Get request string for a single id and a given {@link OsmPrimitiveType}.
      *
      * @param type The primitive type. Must be one of {@link OsmPrimitiveType#NODE NODE}, {@link OsmPrimitiveType#WAY WAY}, {@link OsmPrimitiveType#RELATION RELATION}
Index: /trunk/src/org/openstreetmap/josm/io/NMEAImporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/NMEAImporter.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/NMEAImporter.java	(revision 8390)
@@ -69,10 +69,10 @@
 
     private void showNmeaInfobox(boolean success, NmeaReader r) {
-        final StringBuilder msg = new StringBuilder().append("<html>");
-        msg.append(tr("Coordinates imported: {0}", r.getNumberOfCoordinates()) + "<br>")
-           .append(tr("Malformed sentences: {0}", r.getParserMalformed()) + "<br>")
-           .append(tr("Checksum errors: {0}", r.getParserChecksumErrors()) + "<br>");
+        final StringBuilder msg = new StringBuilder(160).append("<html>");
+        msg.append(tr("Coordinates imported: {0}", r.getNumberOfCoordinates())).append("<br>")
+           .append(tr("Malformed sentences: {0}", r.getParserMalformed())).append("<br>")
+           .append(tr("Checksum errors: {0}", r.getParserChecksumErrors())).append("<br>");
         if (!success) {
-            msg.append(tr("Unknown sentences: {0}", r.getParserUnknown()) + "<br>");
+            msg.append(tr("Unknown sentences: {0}", r.getParserUnknown())).append("<br>");
         }
         msg.append(tr("Zero coordinates: {0}", r.getParserZeroCoordinates()))
Index: /trunk/src/org/openstreetmap/josm/io/NmeaReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/NmeaReader.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/NmeaReader.java	(revision 8390)
@@ -315,5 +315,5 @@
                 accu=e[GPGGA.HDOP.position];
                 if(!accu.isEmpty()) {
-                    currentwp.put(GpxConstants.PT_HDOP, Float.parseFloat(accu));
+                    currentwp.put(GpxConstants.PT_HDOP, Float.valueOf(accu));
                 }
                 // fix
@@ -364,15 +364,15 @@
                 accu=e[GPGSA.VDOP.position];
                 if(!accu.isEmpty()) {
-                    currentwp.put(GpxConstants.PT_VDOP, Float.parseFloat(accu));
+                    currentwp.put(GpxConstants.PT_VDOP, Float.valueOf(accu));
                 }
                 // hdop
                 accu=e[GPGSA.HDOP.position];
                 if(!accu.isEmpty()) {
-                    currentwp.put(GpxConstants.PT_HDOP, Float.parseFloat(accu));
+                    currentwp.put(GpxConstants.PT_HDOP, Float.valueOf(accu));
                 }
                 // pdop
                 accu=e[GPGSA.PDOP.position];
                 if(!accu.isEmpty()) {
-                    currentwp.put(GpxConstants.PT_PDOP, Float.parseFloat(accu));
+                    currentwp.put(GpxConstants.PT_PDOP, Float.valueOf(accu));
                 }
             } else if("$GPRMC".equals(e[0]) || "$GNRMC".equals(e[0])) {
Index: /trunk/src/org/openstreetmap/josm/io/OsmApi.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 8390)
@@ -324,8 +324,7 @@
         StringBuilder rv = new StringBuilder(serverUrl);
         if (version != null) {
-            rv.append("/");
-            rv.append(version);
-        }
-        rv.append("/");
+            rv.append('/').append(version);
+        }
+        rv.append('/');
         // this works around a ruby (or lighttpd) bug where two consecutive slashes in
         // an URL will cause a "404 not found" response.
@@ -683,5 +682,5 @@
                         while((s = in.readLine()) != null) {
                             responseBody.append(s);
-                            responseBody.append("\n");
+                            responseBody.append('\n');
                         }
                     }
Index: /trunk/src/org/openstreetmap/josm/io/OsmApiException.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmApiException.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/OsmApiException.java	(revision 8390)
@@ -136,5 +136,5 @@
                 sb.append(", Error Header=<")
                 .append(eh)
-                .append(">");
+                .append('>');
             }
         } catch (Exception e) {
@@ -146,5 +146,5 @@
                 sb.append(", Error Body=<")
                 .append(eb)
-                .append(">");
+                .append('>');
             }
         } catch (Exception e) {
Index: /trunk/src/org/openstreetmap/josm/io/OsmServerBackreferenceReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmServerBackreferenceReader.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/OsmServerBackreferenceReader.java	(revision 8390)
@@ -125,5 +125,5 @@
             progressMonitor.subTask(tr("Contacting OSM Server..."));
             StringBuilder sb = new StringBuilder();
-            sb.append(primitiveType.getAPIName()).append("/").append(id).append(type);
+            sb.append(primitiveType.getAPIName()).append('/').append(id).append(type);
 
             try (InputStream in = getInputStream(sb.toString(), progressMonitor.createSubTaskMonitor(1, true))) {
Index: /trunk/src/org/openstreetmap/josm/io/OsmServerHistoryReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmServerHistoryReader.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/OsmServerHistoryReader.java	(revision 8390)
@@ -60,5 +60,5 @@
             StringBuilder sb = new StringBuilder();
             sb.append(primitiveType.getAPIName())
-            .append("/").append(id).append("/history");
+            .append('/').append(id).append("/history");
 
             try (InputStream in = getInputStream(sb.toString(), progressMonitor.createSubTaskMonitor(1, true))) {
Index: /trunk/src/org/openstreetmap/josm/io/OsmServerObjectReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmServerObjectReader.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/OsmServerObjectReader.java	(revision 8390)
@@ -118,10 +118,10 @@
             StringBuilder sb = new StringBuilder();
             sb.append(id.getType().getAPIName())
-              .append("/")
+              .append('/')
               .append(id.getUniqueId());
             if (full && ! id.getType().equals(OsmPrimitiveType.NODE)) {
                 sb.append("/full");
             } else if (version > 0) {
-                sb.append("/").append(version);
+                sb.append('/').append(version);
             }
 
Index: /trunk/src/org/openstreetmap/josm/io/OsmServerReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmServerReader.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/OsmServerReader.java	(revision 8390)
@@ -184,5 +184,5 @@
                             while((s = in.readLine()) != null) {
                                 errorBody.append(s);
-                                errorBody.append("\n");
+                                errorBody.append('\n');
                             }
                         }
Index: /trunk/src/org/openstreetmap/josm/io/imagery/ImageryReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/imagery/ImageryReader.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/imagery/ImageryReader.java	(revision 8390)
@@ -263,5 +263,5 @@
                     Integer val = null;
                     try {
-                        val = Integer.parseInt(accumulator.toString());
+                        val = Integer.valueOf(accumulator.toString());
                     } catch(NumberFormatException e) {
                         val = null;
@@ -304,5 +304,5 @@
                     Integer tileSize = null;
                     try {
-                        tileSize  = Integer.parseInt(accumulator.toString());
+                        tileSize = Integer.valueOf(accumulator.toString());
                     } catch(NumberFormatException e) {
                         tileSize = null;
Index: /trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java	(revision 8390)
@@ -81,16 +81,13 @@
         }
         StringBuilder a = new StringBuilder(serviceUrl.getProtocol());
-        a.append("://")
-         .append(serviceUrl.getHost());
+        a.append("://").append(serviceUrl.getHost());
         if (serviceUrl.getPort() != -1) {
-            a.append(":")
-             .append(serviceUrl.getPort());
-        }
-        a.append(serviceUrl.getPath())
-         .append("?");
+            a.append(':').append(serviceUrl.getPort());
+        }
+        a.append(serviceUrl.getPath()).append('?');
         if (serviceUrl.getQuery() != null) {
             a.append(serviceUrl.getQuery());
             if (!serviceUrl.getQuery().isEmpty() && !serviceUrl.getQuery().endsWith("&")) {
-                a.append("&");
+                a.append('&');
             }
         }
@@ -150,5 +147,5 @@
             while ((line = br.readLine()) != null) {
                 ba.append(line);
-                ba.append("\n");
+                ba.append('\n');
             }
         }
Index: /trunk/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java	(revision 8390)
@@ -369,5 +369,5 @@
         StringBuilder r = new StringBuilder();
         boolean first = true;
-        r.append("[");
+        r.append('[');
 
         for (Entry<String, Class<? extends RequestHandler>> p : handlers.entrySet()) {
@@ -379,5 +379,5 @@
             r.append(getHandlerInfoAsJSON(p.getKey()));
         }
-        r.append("]");
+        r.append(']');
 
         return r.toString();
@@ -454,6 +454,7 @@
      * Reports HTML message with the description of all available commands
      * @return HTML message with the description of all available commands
-     * @throws IllegalAccessException
-     * @throws InstantiationException
+     * @throws IllegalAccessException if one handler class or its nullary constructor is not accessible.
+     * @throws InstantiationException if one handler class represents an abstract class, an interface, an array class,
+     * a primitive type, or void; or if the class has no nullary constructor; or if the instantiation fails for some other reason.
      */
     public static String getUsageAsHtml() throws IllegalAccessException, InstantiationException {
@@ -464,6 +465,6 @@
             String[] optional = sample.getOptionalParams();
             String[] examples = sample.getUsageExamples(handler.getKey().substring(1));
-            usage.append("<li>");
-            usage.append(handler.getKey());
+            usage.append("<li>")
+                 .append(handler.getKey());
             if (sample.getUsage() != null && !sample.getUsage().isEmpty()) {
                 usage.append(" &mdash; <i>").append(sample.getUsage()).append("</i>");
@@ -478,5 +479,5 @@
                 usage.append("<br/>examples: ");
                 for (String ex: examples) {
-                    usage.append("<br/> <a href=\"http://localhost:8111"+ex+"\">"+ex+"</a>");
+                    usage.append("<br/> <a href=\"http://localhost:8111").append(ex).append("\">").append(ex).append("</a>");
                 }
             }
Index: /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/FeaturesHandler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/FeaturesHandler.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/FeaturesHandler.java	(revision 8390)
@@ -2,7 +2,7 @@
 package org.openstreetmap.josm.io.remotecontrol.handler;
 
-import org.openstreetmap.josm.Main;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault;
 import org.openstreetmap.josm.io.remotecontrol.RequestProcessor;
@@ -25,5 +25,5 @@
         String q=args.get("q");
         if (q!=null) {
-            buf.append("[");
+            buf.append('[');
             boolean first = true;
             for (String s: q.split("[,\\s]+")) {
@@ -40,9 +40,9 @@
                }
             }
-            buf.append("]");
+            buf.append(']');
         } else {
             buf.append(RequestProcessor.getHandlersInfoAsJSON());
         }
-            
+
         content = buf.toString();
         contentType = "application/json";
@@ -66,5 +66,5 @@
         return null;
     }
-    
+
     @Override
     public String[] getOptionalParams() {
@@ -84,5 +84,5 @@
     @Override
     public String[] getUsageExamples() {
-        return new String[] {"/features", "/features?q=import,add_node"}; 
+        return new String[] {"/features", "/features?q=import,add_node"};
     }
 }
Index: /trunk/src/org/openstreetmap/josm/io/session/GeoImageSessionImporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/session/GeoImageSessionImporter.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/session/GeoImageSessionImporter.java	(revision 8390)
@@ -55,8 +55,8 @@
                                     break;
                                 case "speed":
-                                    entry.setSpeed(Double.parseDouble(attrElem.getTextContent()));
+                                    entry.setSpeed(Double.valueOf(attrElem.getTextContent()));
                                     break;
                                 case "elevation":
-                                    entry.setElevation(Double.parseDouble(attrElem.getTextContent()));
+                                    entry.setElevation(Double.valueOf(attrElem.getTextContent()));
                                     break;
                                 case "gps-time":
@@ -64,5 +64,5 @@
                                     break;
                                 case "exif-orientation":
-                                    entry.setExifOrientation(Integer.parseInt(attrElem.getTextContent()));
+                                    entry.setExifOrientation(Integer.valueOf(attrElem.getTextContent()));
                                     break;
                                 case "exif-time":
Index: /trunk/src/org/openstreetmap/josm/io/session/SessionReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/session/SessionReader.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/io/session/SessionReader.java	(revision 8390)
@@ -362,5 +362,5 @@
                     Integer idx = null;
                     try {
-                        idx = Integer.parseInt(e.getAttribute("index"));
+                        idx = Integer.valueOf(e.getAttribute("index"));
                     } catch (NumberFormatException ex) {
                         Main.warn(ex);
@@ -380,5 +380,5 @@
                             Integer d = null;
                             try {
-                                d = Integer.parseInt(sd);
+                                d = Integer.valueOf(sd);
                             } catch (NumberFormatException ex) {
                                 Main.warn(ex);
Index: /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 8390)
@@ -278,10 +278,9 @@
             sb.append("<li>").append(depr.name);
             if (depr.reason != null) {
-                sb.append(" (").append(depr.reason).append(")");
+                sb.append(" (").append(depr.reason).append(')');
             }
             sb.append("</li>");
         }
-        sb.append("</ul>")
-          .append("</html>");
+        sb.append("</ul></html>");
         JOptionPane.showMessageDialog(
                 parent,
@@ -1326,5 +1325,5 @@
         }
         for (String s : pl) {
-            text.append("- ").append(s).append("\n");
+            text.append("- ").append(s).append('\n');
         }
         return text.toString();
@@ -1351,5 +1350,5 @@
                         b.append(": ");
                         b.append(e.getValue());
-                        b.append("\n");
+                        b.append('\n');
                     }
                     JosmTextArea a = new JosmTextArea(10, 40);
Index: /trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 8390)
@@ -304,5 +304,5 @@
      */
     public String getDescriptionAsHtml() {
-        StringBuilder sb = new StringBuilder();
+        StringBuilder sb = new StringBuilder(128);
         sb.append("<html><body>")
           .append(description == null ? tr("no description available") : description);
@@ -315,5 +315,5 @@
                 && !downloadlink.startsWith("http://trac.openstreetmap.org/browser/applications/editors/josm/dist/")
                 && !downloadlink.startsWith("https://github.com/JOSM/")) {
-            sb.append("<p>&nbsp;</p><p>"+tr("<b>Plugin provided by an external source:</b> {0}", downloadlink)+"</p>");
+            sb.append("<p>&nbsp;</p><p>").append(tr("<b>Plugin provided by an external source:</b> {0}", downloadlink)).append("</p>");
         }
         sb.append("</body></html>");
Index: /trunk/src/org/openstreetmap/josm/plugins/PluginListParser.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/PluginListParser.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/plugins/PluginListParser.java	(revision 8390)
@@ -69,8 +69,8 @@
                     line = line.substring(1);
                     while (line.length() > 70) {
-                        manifest.append(line.substring(0, 70)).append("\n");
+                        manifest.append(line.substring(0, 70)).append('\n');
                         line = " " + line.substring(70);
                     }
-                    manifest.append(line).append("\n");
+                    manifest.append(line).append('\n');
                     continue;
                 }
Index: /trunk/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java	(revision 8390)
@@ -115,7 +115,7 @@
             StringBuilder sb = new StringBuilder();
             sb.append("site-")
-              .append(url.getHost()).append("-");
+              .append(url.getHost()).append('-');
             if (url.getPort() != -1) {
-                sb.append(url.getPort()).append("-");
+                sb.append(url.getPort()).append('-');
             }
             String path = url.getPath();
@@ -125,5 +125,5 @@
                     sb.append(c);
                 } else {
-                    sb.append("_");
+                    sb.append('_');
                 }
             }
@@ -167,5 +167,5 @@
                 String line;
                 while ((line = in.readLine()) != null) {
-                    sb.append(line).append("\n");
+                    sb.append(line).append('\n');
                 }
                 return sb.toString();
@@ -198,5 +198,5 @@
                     String line;
                     while ((line = err.readLine()) != null) {
-                        sb.append(line).append("\n");
+                        sb.append(line).append('\n');
                     }
                 } catch (Exception ex) {
@@ -228,5 +228,5 @@
                 StringBuilder b = new StringBuilder();
                 for (String part : msg.split("(?<=\\G.{200})")) {
-                    b.append(part).append("\n");
+                    b.append(part).append('\n');
                 }
                 panel.add(new JLabel("<html><body width=\"500\"><b>"+b.toString().trim()+"</b></body></html>"), GBC.eol().insets(0, 0, 0, 10));
Index: /trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java	(revision 8390)
@@ -526,5 +526,5 @@
                     w.append(key + "=" + value + "\n");
                 }
-                w.append("\n");
+                w.append('\n');
                 for (FontEntry entry: extras) {
                     if ("".equals(entry.name) || "".equals(entry.file)) {
@@ -539,5 +539,5 @@
                     w.append(key + "=" + value + "\n");
                 }
-                w.append("\n");
+                w.append('\n');
                 String fallback = props.getProperty("sequence.fallback");
                 if (fallback != null) {
Index: /trunk/src/org/openstreetmap/josm/tools/Utils.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 8390)
@@ -931,5 +931,5 @@
                     all = new StringBuilder(line);
                 } else {
-                    all.append("\n");
+                    all.append('\n');
                     all.append(line);
                 }
@@ -1007,8 +1007,8 @@
                 ++cnt;
             } else if (cnt == 0) {
-                sb.append(",").append(cur);
+                sb.append(',').append(cur);
             } else {
-                sb.append("-").append(last);
-                sb.append(",").append(cur);
+                sb.append('-').append(last);
+                sb.append(',').append(cur);
                 cnt = 0;
             }
@@ -1016,5 +1016,5 @@
         }
         if (cnt >= 1) {
-            sb.append("-").append(last);
+            sb.append('-').append(last);
         }
         return sb.toString();
Index: /trunk/src/org/openstreetmap/josm/tools/WikiReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/WikiReader.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/tools/WikiReader.java	(revision 8390)
@@ -110,5 +110,5 @@
         for (String line = in.readLine(); line != null; line = in.readLine()) {
             if (!line.contains("[[TranslatedPages]]")) {
-                b.append(line.replaceAll(" />", ">")).append("\n");
+                b.append(line.replaceAll(" />", ">")).append('\n');
             }
         }
Index: /trunk/src/org/openstreetmap/josm/tools/WindowGeometry.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/WindowGeometry.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/tools/WindowGeometry.java	(revision 8390)
@@ -253,8 +253,6 @@
     public void remember(String preferenceKey) {
         StringBuilder value = new StringBuilder();
-        value.append("x=").append(topLeft.x).append(",")
-        .append("y=").append(topLeft.y).append(",")
-        .append("width=").append(extent.width).append(",")
-        .append("height=").append(extent.height);
+        value.append("x=").append(topLeft.x).append(",y=").append(topLeft.y)
+             .append(",width=").append(extent.width).append(",height=").append(extent.height);
         Main.pref.put(preferenceKey, value.toString());
     }
Index: /trunk/src/org/openstreetmap/josm/tools/XmlObjectParser.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/XmlObjectParser.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/tools/XmlObjectParser.java	(revision 8390)
@@ -125,7 +125,7 @@
                 return parseBoolean(value);
             else if (klass == Integer.TYPE || klass == Long.TYPE)
-                return Long.parseLong(value);
+                return Long.valueOf(value);
             else if (klass == Float.TYPE || klass == Double.TYPE)
-                return Double.parseDouble(value);
+                return Double.valueOf(value);
             return value;
         }
Index: /trunk/src/org/openstreetmap/josm/tools/template_engine/Condition.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/template_engine/Condition.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/tools/template_engine/Condition.java	(revision 8390)
@@ -47,9 +47,7 @@
                 sb.append(entry);
             } else {
-                sb.append("'");
-                sb.append(entry);
-                sb.append("'");
+                sb.append('\'').append(entry).append('\'');
             }
-            sb.append("|");
+            sb.append('|');
         }
         return sb.toString();
Index: /trunk/src/org/openstreetmap/josm/tools/template_engine/Variable.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/template_engine/Variable.java	(revision 8389)
+++ /trunk/src/org/openstreetmap/josm/tools/template_engine/Variable.java	(revision 8390)
@@ -35,5 +35,5 @@
                     first = false;
                 }
-                result.append(key).append("=").append(dataProvider.getTemplateValue(key, false));
+                result.append(key).append('=').append(dataProvider.getTemplateValue(key, false));
             }
         } else {
