Index: trunk/src/org/openstreetmap/josm/data/validation/ValidationTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/ValidationTask.java	(revision 18963)
+++ trunk/src/org/openstreetmap/josm/data/validation/ValidationTask.java	(revision 18964)
@@ -136,8 +136,11 @@
         }
 
-        if (!GraphicsEnvironment.isHeadless() && MainApplication.getMap() != null && (!beforeUpload || !errors.isEmpty())) {
+        if (!GraphicsEnvironment.isHeadless() && MainApplication.getMap() != null) {
+            MapFrame map = MainApplication.getMap();
             // update GUI on Swing EDT
             GuiHelper.runInEDT(() -> {
-                MapFrame map = MainApplication.getMap();
+                // see #23440 why this is inside the EDT
+                if (!map.validatorDialog.isShowing() && errors.isEmpty() && beforeUpload)
+                    return;
                 map.validatorDialog.unfurlDialog();
                 map.validatorDialog.tree.setErrors(errors);
