Index: trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 19119)
+++ trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 19120)
@@ -113,7 +113,6 @@
                 if (dm != null) {
                     AffineTransform transform = gd.getDefaultConfiguration().getDefaultTransform();
-                    // Java 11: use DisplayMode#toString
-                    text.format(Locale.ROOT, " %d\u00D7%d (scaling %.2f\u00D7%.2f)",
-                            dm.getWidth(), dm.getHeight(), transform.getScaleX(), transform.getScaleY());
+                    text.format(Locale.ROOT, " %s (scaling %.2f\u00D7%.2f)",
+                            dm, transform.getScaleX(), transform.getScaleY());
                 }
             }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialog.java	(revision 19119)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialog.java	(revision 19120)
@@ -49,5 +49,5 @@
 /**
  * Panel to inspect one or more OsmPrimitives.
- *
+ * <p>
  * Gives an unfiltered view of the object's internal state.
  * Might be useful for power users to give more detailed bug reports and
@@ -129,5 +129,5 @@
                 String heading = tr("Styles for \"{0}\":", osm.getDisplayName(DefaultNameFormatter.getInstance()));
                 txtMappaint.println(heading);
-                txtMappaint.println(repeatString("=", heading.length()));
+                txtMappaint.println("=".repeat(heading.length()));
 
                 MultiCascade mc = new MultiCascade();
@@ -137,5 +137,5 @@
                         heading = tr("{0} style \"{1}\"", getSort(s), s.getDisplayString());
                         txtMappaint.println(heading);
-                        txtMappaint.println(repeatString("-", heading.length()));
+                        txtMappaint.println("-".repeat(heading.length()));
                         s.apply(mc, osm, scale, false);
                         txtMappaint.println(tr("Display range: {0}", mc.range));
@@ -150,5 +150,5 @@
                 heading = tr("List of generated Styles:");
                 txtMappaint.println(heading);
-                txtMappaint.println(repeatString("-", heading.length()));
+                txtMappaint.println("-".repeat(heading.length()));
                 StyleElementList sl = elemstyles.get(osm, scale, nc);
                 for (StyleElement s : sl) {
@@ -177,9 +177,4 @@
         }
         return stringWriter.toString();
-    }
-
-    private static String repeatString(String string, int count) {
-        // Java 11: use String.repeat
-        return new String(new char[count]).replace("\0", string);
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManagerModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManagerModel.java	(revision 19119)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManagerModel.java	(revision 19120)
@@ -90,5 +90,5 @@
      */
     public List<Changeset> getSelectedChangesets() {
-        return Arrays.stream(TableHelper.getSelectedIndices(selectionModel))
+        return Arrays.stream(selectionModel.getSelectedIndices())
                 .map(sorter::convertRowIndexToModel).mapToObj(data::get).collect(Collectors.toList());
     }
Index: trunk/src/org/openstreetmap/josm/gui/util/ReorderableTableModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/util/ReorderableTableModel.java	(revision 19119)
+++ trunk/src/org/openstreetmap/josm/gui/util/ReorderableTableModel.java	(revision 19120)
@@ -42,5 +42,5 @@
      */
     default int[] getSelectedIndices() {
-        return TableHelper.getSelectedIndices(getSelectionModel());
+        return getSelectionModel().getSelectedIndices();
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/util/TableHelper.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/util/TableHelper.java	(revision 19119)
+++ trunk/src/org/openstreetmap/josm/gui/util/TableHelper.java	(revision 19120)
@@ -123,5 +123,5 @@
      * Unfortunately this method is not available in OpenJDK before version 11, see
      * https://bugs.openjdk.java.net/browse/JDK-8199395
-     *
+     * <p>
      * To be removed when we switch to Java 11 or later.
      *
@@ -132,7 +132,9 @@
      * @see #selectedIndices(ListSelectionModel)
      * @since 15226
+     * @deprecated Use {@link ListSelectionModel#getSelectedIndices()} instead
      */
+    @Deprecated(since = "19120")
     public static int[] getSelectedIndices(ListSelectionModel selectionModel) {
-        return selectedIndices(selectionModel).toArray();
+        return selectionModel.getSelectedIndices();
     }
 
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHook.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHook.java	(revision 19119)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHook.java	(revision 19120)
@@ -248,5 +248,5 @@
     /**
      * Returns extended modifier key used as the appropriate accelerator key for menu shortcuts.
-     * It is advised everywhere to use {@link Toolkit#getMenuShortcutKeyMask()} to get the cross-platform modifier, but:
+     * It was advised everywhere to use {@link Toolkit#getMenuShortcutKeyMask()} to get the cross-platform modifier, but:
      * <ul>
      * <li>it returns KeyEvent.CTRL_MASK instead of KeyEvent.CTRL_DOWN_MASK. We used the extended
@@ -258,5 +258,7 @@
      */
     default int getMenuShortcutKeyMaskEx() {
-        // To remove when switching to Java 10+, and use Toolkit.getMenuShortcutKeyMaskEx instead
+        if (!GraphicsEnvironment.isHeadless()) {
+            return Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx();
+        }
         return InputEvent.CTRL_DOWN_MASK;
     }
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 19119)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 19120)
@@ -104,9 +104,4 @@
         return !("true".equals(getSystemProperty("apple.laf.useScreenMenuBar"))
                 && ("Aqua".equals(laf) || laf.contains("Mac")));
-    }
-
-    @Override
-    public int getMenuShortcutKeyMaskEx() {
-        return InputEvent.META_DOWN_MASK;
     }
 
Index: trunk/src/org/openstreetmap/josm/tools/StreamUtils.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/StreamUtils.java	(revision 19119)
+++ trunk/src/org/openstreetmap/josm/tools/StreamUtils.java	(revision 19120)
@@ -68,5 +68,5 @@
      */
     public static <T> Collector<T, ?, List<T>> toUnmodifiableList() {
-        // Java 10: use java.util.stream.Collectors.toUnmodifiableList
+        // Java 10: use java.util.stream.Collectors.toUnmodifiableList (note: does not like null checks OR null entries)
         return Collectors.collectingAndThen(Collectors.toList(), Utils::toUnmodifiableList);
     }
