Index: trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java	(revision 11334)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java	(revision 11335)
@@ -437,15 +437,6 @@
         // Remove purged primitives (fix #8639)
         if (errors != null) {
-            for (TestError err : errors) {
-                try {
-                    err.getPrimitives().removeAll(event.getPrimitives());
-                } catch (UnsupportedOperationException e) {
-                    if (event.getPrimitives().containsAll(err.getPrimitives())) {
-                        err.getPrimitives().clear();
-                    } else {
-                        Main.warn(e, "Unable to remove primitives from "+err+'.');
-                    }
-                }
-            }
+            final Set<? extends OsmPrimitive> deletedPrimitives = new HashSet<>(event.getPrimitives());
+            errors.removeIf(error -> error.getPrimitives().stream().anyMatch(deletedPrimitives::contains));
         }
     }
