Index: trunk/src/org/openstreetmap/josm/data/projection/ProjectionCLI.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/ProjectionCLI.java	(revision 14434)
+++ trunk/src/org/openstreetmap/josm/data/projection/ProjectionCLI.java	(revision 14435)
@@ -29,4 +29,5 @@
 public class ProjectionCLI implements CLIModule {
 
+    /** The unique instance **/
     public static final ProjectionCLI INSTANCE = new ProjectionCLI();
 
@@ -43,5 +44,5 @@
     public void processArguments(String[] argArray) {
         List<String> positionalArguments = new OptionParser("JOSM projection")
-            .addFlagParameter("help", this::showHelp)
+            .addFlagParameter("help", ProjectionCLI::showHelp)
             .addShortAlias("help", "h")
             .addFlagParameter("inverse", () -> argInverse = true)
@@ -84,5 +85,5 @@
      * Displays help on the console
      */
-    private void showHelp() {
+    private static void showHelp() {
         System.out.println(getHelp());
         System.exit(0);
Index: trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 14434)
+++ trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 14435)
@@ -676,7 +676,5 @@
             });
 
-            addPropertyChangeListener(DIVIDER_LOCATION_PROPERTY, e -> {
-                heightAdjustedExplicitly = true;
-            });
+            addPropertyChangeListener(DIVIDER_LOCATION_PROPERTY, e -> heightAdjustedExplicitly = true);
         }
 
Index: trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 14434)
+++ trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 14435)
@@ -1776,4 +1776,5 @@
 
         /**
+         * Constructs a new {@code PrecacheTask}.
          * @param progressMonitor that will be notified about progess of the task
          * @param bufferY buffer Y in degrees around which to download tiles
Index: trunk/src/org/openstreetmap/josm/tools/OptionParser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/OptionParser.java	(revision 14434)
+++ trunk/src/org/openstreetmap/josm/tools/OptionParser.java	(revision 14435)
@@ -168,5 +168,5 @@
                         parameter = split[1];
                     } else {
-                        if (toHandle.isEmpty() || toHandle.getFirst().equals("--")) {
+                        if (toHandle.isEmpty() || "--".equals(toHandle.getFirst())) {
                             throw new OptionParseException(tr("{0}: option ''{1}'' requires an argument", program));
                         }
@@ -198,16 +198,16 @@
                 option.option.runFor(option.parameter);
             } catch (OptionParseException e) {
-                String message;
+                StringBuilder message = new StringBuilder();
                 // Just add a nicer error message
                 if (option.parameter == null) {
-                    message = tr("{0}: Error while handling option ''{1}''", program, option.optionName);
+                    message.append(tr("{0}: Error while handling option ''{1}''", program, option.optionName));
                 } else {
-                    message = tr("{0}: Invalid value {2} for option ''{1}''", program, option.optionName,
-                            option.parameter);
+                    message.append(tr("{0}: Invalid value {2} for option ''{1}''", program, option.optionName,
+                            option.parameter));
                 }
                 if (!e.getLocalizedMessage().isEmpty()) {
-                    message += ": " + e.getLocalizedMessage().isEmpty();
+                    message.append(": ").append(e.getLocalizedMessage().isEmpty());
                 }
-                throw new OptionParseException(message, e);
+                throw new OptionParseException(message.toString(), e);
             }
         }
@@ -261,11 +261,19 @@
     }
 
-    protected abstract static class AvailableOption {
-
-        public boolean requiresParameter() {
+    protected interface AvailableOption {
+
+        /**
+         * Determines if this option requires a parameter.
+         * @return {@code true} if this option requires a parameter ({@code false} by default)
+         */
+        default boolean requiresParameter() {
             return false;
         }
 
-        public OptionCount getRequiredCount() {
+        /**
+         * Determines how often this option may / must be specified on the command line.
+         * @return how often this option may / must be specified on the command line
+         */
+        default OptionCount getRequiredCount() {
             return OptionCount.OPTIONAL;
         }
@@ -275,6 +283,5 @@
          * @param parameter The parameter if {@link #requiresParameter()} is true, <code>null</code> otherwise.
          */
-        public abstract void runFor(String parameter);
-
+        void runFor(String parameter);
     }
 
@@ -292,4 +299,5 @@
 
     /**
+     * Exception thrown when an option cannot be parsed.
      * @author Michael Zangl
      */
@@ -307,4 +315,5 @@
 
         /**
+         * Create an error with a localized description
          * @param localizedMessage The message to display to the user.
          */
@@ -315,4 +324,5 @@
 
         /**
+         * Create an error with a localized description and a root cause
          * @param localizedMessage The message to display to the user.
          * @param t The error that caused this message to be displayed.
