Index: trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 10657)
+++ trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 10658)
@@ -26,4 +26,5 @@
 import java.util.Objects;
 import java.util.Set;
+import java.util.function.Predicate;
 
 import javax.swing.ButtonGroup;
@@ -54,5 +55,4 @@
 import org.openstreetmap.josm.gui.widgets.HistoryComboBox;
 import org.openstreetmap.josm.tools.GBC;
-import org.openstreetmap.josm.tools.Predicate;
 import org.openstreetmap.josm.tools.Shortcut;
 import org.openstreetmap.josm.tools.Utils;
@@ -689,11 +689,11 @@
                             ++foundMatches;
                         }
-                    } else if (setting.mode == SearchMode.add && !predicate.evaluate(osm) && matcher.match(osm)) {
+                    } else if (setting.mode == SearchMode.add && !predicate.test(osm) && matcher.match(osm)) {
                         selection.add(osm);
                         ++foundMatches;
-                    } else if (setting.mode == SearchMode.remove && predicate.evaluate(osm) && matcher.match(osm)) {
+                    } else if (setting.mode == SearchMode.remove && predicate.test(osm) && matcher.match(osm)) {
                         selection.remove(osm);
                         ++foundMatches;
-                    } else if (setting.mode == SearchMode.in_selection && predicate.evaluate(osm) && !matcher.match(osm)) {
+                    } else if (setting.mode == SearchMode.in_selection && predicate.test(osm) && !matcher.match(osm)) {
                         selection.remove(osm);
                         --foundMatches;
Index: trunk/src/org/openstreetmap/josm/data/osm/Node.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/Node.java	(revision 10657)
+++ trunk/src/org/openstreetmap/josm/data/osm/Node.java	(revision 10658)
@@ -5,4 +5,5 @@
 import java.util.Set;
 import java.util.TreeSet;
+import java.util.function.Predicate;
 
 import org.openstreetmap.josm.Main;
@@ -13,5 +14,4 @@
 import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
-import org.openstreetmap.josm.tools.Predicate;
 import org.openstreetmap.josm.tools.Utils;
 
@@ -381,5 +381,5 @@
                     final boolean containsN = visited.contains(n);
                     visited.add(n);
-                    if (!containsN && (predicate == null || predicate.evaluate(n))
+                    if (!containsN && (predicate == null || predicate.test(n))
                             && n.isConnectedTo(otherNodes, hops - 1, predicate, visited)) {
                         return true;
Index: trunk/src/org/openstreetmap/josm/tools/Geometry.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/Geometry.java	(revision 10657)
+++ trunk/src/org/openstreetmap/josm/tools/Geometry.java	(revision 10658)
@@ -888,5 +888,5 @@
      * @return {@code true} if the node is inside the multipolygon
      */
-    public static boolean isNodeInsideMultiPolygon(Node node, Relation multiPolygon, Predicate<Way> isOuterWayAMatch) {
+    public static boolean isNodeInsideMultiPolygon(Node node, Relation multiPolygon, java.util.function.Predicate<Way> isOuterWayAMatch) {
         return isPolygonInsideMultiPolygon(Collections.singletonList(node), multiPolygon, isOuterWayAMatch);
     }
@@ -902,5 +902,6 @@
      * @return {@code true} if the polygon formed by nodes is inside the multipolygon
      */
-    public static boolean isPolygonInsideMultiPolygon(List<Node> nodes, Relation multiPolygon, Predicate<Way> isOuterWayAMatch) {
+    public static boolean isPolygonInsideMultiPolygon(List<Node> nodes, Relation multiPolygon,
+            java.util.function.Predicate<Way> isOuterWayAMatch) {
         // Extract outer/inner members from multipolygon
         final MultiPolygonMembers mpm = new MultiPolygonMembers(multiPolygon);
@@ -936,5 +937,5 @@
                 if (!insideInner) {
                     // Final check using predicate
-                    if (isOuterWayAMatch == null || isOuterWayAMatch.evaluate(out.ways.get(0)
+                    if (isOuterWayAMatch == null || isOuterWayAMatch.test(out.ways.get(0)
                             /* TODO give a better representation of the outer ring to the predicate */)) {
                         return true;
