Ticket #13948: 13948_v5.patch

File 13948_v5.patch, 1.3 KB (added by simon04, 9 years ago)
  • src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java b/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java
    index 20a8cc4..9871e5f 100644
    a b public void destroy() {  
    436436    @Override public void primitivesRemoved(PrimitivesRemovedEvent event) {
    437437        // Remove purged primitives (fix #8639)
    438438        if (errors != null) {
    439             for (TestError err : errors) {
    440                 try {
    441                     err.getPrimitives().removeAll(event.getPrimitives());
    442                 } catch (UnsupportedOperationException e) {
    443                     if (event.getPrimitives().containsAll(err.getPrimitives())) {
    444                         err.getPrimitives().clear();
    445                     } else {
    446                         Main.warn(e, "Unable to remove primitives from "+err+'.');
    447                     }
    448                 }
    449             }
     439            final Set<? extends OsmPrimitive> deletedPrimitives = new HashSet<>(event.getPrimitives());
     440            errors.removeIf(error -> error.getPrimitives().stream().anyMatch(deletedPrimitives::contains));
    450441        }
    451442    }
    452443