Ticket #21043: 21043.patch

File 21043.patch, 1.4 KB (added by taylor.smock, 5 years ago)

Relation -> IRelation<?>, IPrimitive::isMultiPolygon -> i -> i.isMultipolygon() && i instanceof IFilterablePrimitive (instanceof is probably unnecessary, but added just in case)

  • src/org/openstreetmap/josm/data/osm/FilterMatcher.java

    From babb4b23f8a15c2b49506a93cb7c9fd6f7edf4dd Mon Sep 17 00:00:00 2001
    From: Taylor Smock <tsmock@fb.com>
    Date: Mon, 28 Jun 2021 08:34:34 -0600
    Subject: [PATCH] Fix #21043: ClassCastException when filtering non-osm
     primitives
    
    Signed-off-by: Taylor Smock <tsmock@fb.com>
    ---
     src/org/openstreetmap/josm/data/osm/FilterMatcher.java | 6 +++---
     1 file changed, 3 insertions(+), 3 deletions(-)
    
    diff --git a/src/org/openstreetmap/josm/data/osm/FilterMatcher.java b/src/org/openstreetmap/josm/data/osm/FilterMatcher.java
    index 5cdb25a90..4a7e2b37a 100644
    a b public class FilterMatcher {  
    209209
    210210    private static boolean allParentMultipolygonsFiltered(IPrimitive primitive, boolean hidden) {
    211211        boolean isExplicit = false;
    212         for (Relation r : new SubclassFilteredCollection<IPrimitive, Relation>(
    213                 primitive.getReferrers(), IPrimitive::isMultipolygon)) {
     212        for (IRelation<?> r : new SubclassFilteredCollection<IPrimitive, IRelation<?>>(
     213                primitive.getReferrers(), i -> i.isMultipolygon() && i instanceof IFilterablePrimitive)) {
    214214            if (!isFiltered(r, hidden))
    215215                return false;
    216             isExplicit |= isFilterExplicit(r, hidden);
     216            isExplicit |= isFilterExplicit((IFilterablePrimitive) r, hidden);
    217217        }
    218218        return isExplicit;
    219219    }