commit a4ec9e0dd170f76af014fcaf61a6c1709cc5e3ff
Author: Simon Legner <Simon.Legner@gmail.com>
Date:   2020-09-02 22:59:11 +0200

    fix #19752 - StyleCache.intern: use HashMap instead of Storage

diff --git a/src/org/openstreetmap/josm/gui/mappaint/StyleCache.java b/src/org/openstreetmap/josm/gui/mappaint/StyleCache.java
index 0970b2e84..6bcfd0ce9 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/StyleCache.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/StyleCache.java
@@ -2,9 +2,10 @@
 package org.openstreetmap.josm.gui.mappaint;
 
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.Optional;
+import java.util.function.Function;
 
-import org.openstreetmap.josm.data.osm.Storage;
 import org.openstreetmap.josm.tools.Pair;
 
 /**
@@ -15,7 +16,7 @@
 public final class StyleCache {
 
     // TODO: clean up the intern pool from time to time (after purge or layer removal)
-    private static final Storage<StyleCache> internPool = new Storage<>();
+    private static final HashMap<StyleCache, StyleCache> internPool = new HashMap<>();
 
     /**
      * An empty style cache entry
@@ -97,7 +98,7 @@ public boolean equals(Object obj) {
      * @return style cache
      */
     private StyleCache intern() {
-        return internPool.putUnique(this);
+        return internPool.computeIfAbsent(this, Function.identity());
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java b/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
index 40eb3f14a..a6ba97767 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
@@ -649,15 +649,14 @@ protected AbstractSelector(List<Condition> conditions) {
         @Override
         public boolean matches(Environment env) {
             CheckParameterUtil.ensureParameterNotNull(env, "env");
-            for (Condition c : conds) {
+            return conds.stream().allMatch(c -> {
                 try {
-                    if (!c.applies(env)) return false;
+                    return c.applies(env);
                 } catch (PatternSyntaxException e) {
                     Logging.log(Logging.LEVEL_ERROR, "PatternSyntaxException while applying condition" + c + ':', e);
                     return false;
                 }
-            }
-            return true;
+            });
         }
 
         @Override
