Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java	(revision 15997)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java	(revision 15998)
@@ -379,11 +379,8 @@
 
         Selector whichSelectorMatchesEnvironment(Environment env) {
-            for (Selector i : rule.selectors) {
-                env.clearSelectorMatchingInformation();
-                if (i.matches(env)) {
-                    return i;
-                }
-            }
-            return null;
+            return rule.selectors.stream()
+                    .filter(i -> i.matches(env.clearSelectorMatchingInformation()))
+                    .findFirst()
+                    .orElse(null);
         }
 
@@ -693,16 +690,10 @@
      */
     private static void addIfNotSimilar(TestError toAdd, List<TestError> errors) {
-        boolean isDup = false;
-        if (toAdd.getPrimitives().size() >= 2) {
-            for (TestError e : errors) {
-                if (e.getCode() == toAdd.getCode() && e.getMessage().equals(toAdd.getMessage())
+        final boolean isDup = toAdd.getPrimitives().size() >= 2 && errors.stream()
+                .anyMatch(e -> e.getCode() == toAdd.getCode()
+                        && e.getMessage().equals(toAdd.getMessage())
                         && e.getPrimitives().size() == toAdd.getPrimitives().size()
                         && e.getPrimitives().containsAll(toAdd.getPrimitives())
-                        && highlightedIsEqual(e.getHighlighted(), toAdd.getHighlighted())) {
-                    isDup = true;
-                    break;
-                }
-            }
-        }
+                        && highlightedIsEqual(e.getHighlighted(), toAdd.getHighlighted()));
         if (!isDup)
             errors.add(toAdd);
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/Environment.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/Environment.java	(revision 15997)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/Environment.java	(revision 15998)
@@ -300,6 +300,7 @@
     /**
      * Clears all matching context information
-     */
-    public void clearSelectorMatchingInformation() {
+     * @return this
+     */
+    public Environment clearSelectorMatchingInformation() {
         parent = null;
         child = null;
@@ -309,4 +310,5 @@
         intersections = null;
         crossingWaysMap = null;
+        return this;
     }
 
