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/src/org/openstreetmap/josm/data/osm/FilterMatcher.java
+++ b/src/org/openstreetmap/josm/data/osm/FilterMatcher.java
@@ -209,11 +209,11 @@ public class FilterMatcher {
 
     private static boolean allParentMultipolygonsFiltered(IPrimitive primitive, boolean hidden) {
         boolean isExplicit = false;
-        for (Relation r : new SubclassFilteredCollection<IPrimitive, Relation>(
-                primitive.getReferrers(), IPrimitive::isMultipolygon)) {
+        for (IRelation<?> r : new SubclassFilteredCollection<IPrimitive, IRelation<?>>(
+                primitive.getReferrers(), i -> i.isMultipolygon() && i instanceof IFilterablePrimitive)) {
             if (!isFiltered(r, hidden))
                 return false;
-            isExplicit |= isFilterExplicit(r, hidden);
+            isExplicit |= isFilterExplicit((IFilterablePrimitive) r, hidden);
         }
         return isExplicit;
     }
-- 
GitLab

