Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 13960)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 13963)
@@ -1030,5 +1030,7 @@
         // splash can be null sometimes on Linux, in this case try to load JOSM silently
         final SplashProgressMonitor monitor = splash != null ? splash.getProgressMonitor() : new SplashProgressMonitor(null, e -> {
-            Logging.debug(e.toString());
+            if (e != null) {
+                Logging.debug(e.toString());
+            }
         });
         monitor.beginTask(tr("Initializing"));
Index: trunk/src/org/openstreetmap/josm/gui/util/WindowGeometry.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/util/WindowGeometry.java	(revision 13960)
+++ trunk/src/org/openstreetmap/josm/gui/util/WindowGeometry.java	(revision 13963)
@@ -343,17 +343,21 @@
 
         // Ensure window does not hide taskbar
-
-        Rectangle maxbounds = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
-
-        if (!isBugInMaximumWindowBounds(maxbounds)) {
-            deltax = size.width - maxbounds.width;
-            if (deltax > 0) {
-                size.width -= deltax;
+        try {
+            Rectangle maxbounds = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
+
+            if (!isBugInMaximumWindowBounds(maxbounds)) {
+                deltax = size.width - maxbounds.width;
+                if (deltax > 0) {
+                    size.width -= deltax;
+                }
+
+                deltay = size.height - maxbounds.height;
+                if (deltay > 0) {
+                    size.height -= deltay;
+                }
             }
-
-            deltay = size.height - maxbounds.height;
-            if (deltay > 0) {
-                size.height -= deltay;
-            }
+        } catch (IllegalArgumentException e) {
+            // See #16410: IllegalArgumentException: "Window must not be zero" on Linux/X11
+            Logging.error(e);
         }
         window.setLocation(p);
