Index: /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java	(revision 14435)
+++ /trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java	(revision 14436)
@@ -93,5 +93,5 @@
      * @return ImageryInfo object that's ready to be used to create TileSource
      */
-    private ImageryInfo convertImagery(ImageryInfo info) {
+    private static ImageryInfo convertImagery(ImageryInfo info) {
         try {
             switch(info.getImageryType()) {
Index: /trunk/src/org/openstreetmap/josm/data/imagery/AbstractWMSTileSource.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/imagery/AbstractWMSTileSource.java	(revision 14435)
+++ /trunk/src/org/openstreetmap/josm/data/imagery/AbstractWMSTileSource.java	(revision 14436)
@@ -231,5 +231,5 @@
     }
 
-    private String getBboxstr(double x1, double x2, double x3, double x4) {
+    private static String getBboxstr(double x1, double x2, double x3, double x4) {
         return new StringBuilder(64)
                 .append(LATLON_FORMAT.format(x1))
Index: /trunk/src/org/openstreetmap/josm/data/imagery/GetCapabilitiesParseHelper.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/imagery/GetCapabilitiesParseHelper.java	(revision 14435)
+++ /trunk/src/org/openstreetmap/josm/data/imagery/GetCapabilitiesParseHelper.java	(revision 14436)
@@ -6,5 +6,5 @@
 import java.net.URL;
 import java.util.Locale;
-import java.util.function.BiFunction;
+import java.util.function.BiPredicate;
 
 import javax.xml.namespace.QName;
@@ -167,5 +167,5 @@
      */
     public static boolean moveReaderToTag(XMLStreamReader reader,
-            BiFunction<QName, QName, Boolean> equalsFunc, QName... tags) throws XMLStreamException {
+            BiPredicate<QName, QName> equalsFunc, QName... tags) throws XMLStreamException {
         QName stopTag = reader.getName();
         int currentLevel = 0;
@@ -175,12 +175,12 @@
 
         for (int event = 0; //skip current element, so we will not skip it as a whole
-                reader.hasNext() && !(event == XMLStreamReader.END_ELEMENT && equalsFunc.apply(stopTag, reader.getName()));
+                reader.hasNext() && !(event == XMLStreamReader.END_ELEMENT && equalsFunc.test(stopTag, reader.getName()));
                 event = reader.next()) {
-            if (event == XMLStreamReader.END_ELEMENT && skipTag != null && equalsFunc.apply(skipTag, reader.getName())) {
+            if (event == XMLStreamReader.END_ELEMENT && skipTag != null && equalsFunc.test(skipTag, reader.getName())) {
                 skipTag = null;
             }
             if (skipTag == null) {
                 if (event == XMLStreamReader.START_ELEMENT) {
-                    if (equalsFunc.apply(searchTag, reader.getName())) {
+                    if (equalsFunc.test(searchTag, reader.getName())) {
                         currentLevel += 1;
                         if (currentLevel >= tags.length) {
@@ -194,5 +194,5 @@
                 }
 
-                if (event == XMLStreamReader.END_ELEMENT && parentTag != null && equalsFunc.apply(parentTag, reader.getName())) {
+                if (event == XMLStreamReader.END_ELEMENT && parentTag != null && equalsFunc.test(parentTag, reader.getName())) {
                     currentLevel -= 1;
                     searchTag = parentTag;
Index: /trunk/src/org/openstreetmap/josm/data/osm/MultipolygonBuilder.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/MultipolygonBuilder.java	(revision 14435)
+++ /trunk/src/org/openstreetmap/josm/data/osm/MultipolygonBuilder.java	(revision 14436)
@@ -70,5 +70,5 @@
          * @return the intersection result for a2 and a1
          */
-        private PolygonIntersection getReverseIntersectionResult(PolygonIntersection intersection) {
+        private static PolygonIntersection getReverseIntersectionResult(PolygonIntersection intersection) {
             switch (intersection) {
                 case FIRST_INSIDE_SECOND:
Index: /trunk/src/org/openstreetmap/josm/data/projection/ProjectionCLI.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/projection/ProjectionCLI.java	(revision 14435)
+++ /trunk/src/org/openstreetmap/josm/data/projection/ProjectionCLI.java	(revision 14436)
@@ -14,5 +14,5 @@
 import java.util.Arrays;
 import java.util.List;
-import java.util.function.Function;
+import java.util.function.ToDoubleFunction;
 
 import org.openstreetmap.josm.cli.CLIModule;
@@ -166,10 +166,10 @@
     }
 
-    private EastNorth parseEastNorth(String s, Function<String, Double> parser) {
+    private EastNorth parseEastNorth(String s, ToDoubleFunction<String> parser) {
         String[] en = s.split("[;, ]+");
         if (en.length != 2)
             throw new IllegalArgumentException(tr("Expected two coordinates, separated by white space, found {0} in ''{1}''", en.length, s));
-        double east = parser.apply(en[0]);
-        double north = parser.apply(en[1]);
+        double east = parser.applyAsDouble(en[0]);
+        double north = parser.applyAsDouble(en[1]);
         if (this.argSwitchInput)
             return new EastNorth(north, east);
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java	(revision 14435)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java	(revision 14436)
@@ -316,5 +316,5 @@
      * @return true if one or more ways are in the set of known ways
      */
-    private boolean hasIntersectionWay(PolyData pd, Set<Way> intersectionWays) {
+    private static boolean hasIntersectionWay(PolyData pd, Set<Way> intersectionWays) {
         for (Way w : intersectionWays) {
             if (pd.getWayIds().contains(w.getUniqueId())) {
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java	(revision 14435)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java	(revision 14436)
@@ -150,5 +150,5 @@
     }
 
-    private boolean checkMemberType(Role r, RelationMember member) {
+    private static boolean checkMemberType(Role r, RelationMember member) {
         if (r.types != null) {
             switch (member.getDisplayType()) {
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java	(revision 14435)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java	(revision 14436)
@@ -9,5 +9,5 @@
 import java.util.Objects;
 import java.util.Set;
-import java.util.function.BiFunction;
+import java.util.function.BiPredicate;
 import java.util.function.IntFunction;
 import java.util.function.Predicate;
@@ -181,5 +181,5 @@
         static final Set<Op> NEGATED_OPS = EnumSet.of(NEQ, NREGEX);
 
-        private final BiFunction<String, String, Boolean> function;
+        private final BiPredicate<String, String> function;
 
         private final boolean negated;
@@ -189,5 +189,5 @@
          * @param func The function to apply during {@link #eval(String, String)}.
          */
-        Op(BiFunction<String, String, Boolean> func) {
+        Op(BiPredicate<String, String> func) {
             this.function = func;
             negated = false;
@@ -219,5 +219,5 @@
          */
         Op(Op negate) {
-            this.function = (a, b) -> !negate.function.apply(a, b);
+            this.function = (a, b) -> !negate.function.test(a, b);
             negated = true;
         }
@@ -233,5 +233,5 @@
                 return negated;
             else
-                return function.apply(testString, prototypeString);
+                return function.test(testString, prototypeString);
         }
     }
Index: /trunk/src/org/openstreetmap/josm/io/NoteReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/NoteReader.java	(revision 14435)
+++ /trunk/src/org/openstreetmap/josm/io/NoteReader.java	(revision 14436)
@@ -11,5 +11,5 @@
 import java.util.Locale;
 import java.util.Optional;
-import java.util.function.Function;
+import java.util.function.UnaryOperator;
 
 import javax.xml.parsers.ParserConfigurationException;
@@ -176,5 +176,5 @@
     }
 
-    static LatLon parseLatLon(Function<String, String> attrs) {
+    static LatLon parseLatLon(UnaryOperator<String> attrs) {
         double lat = Double.parseDouble(attrs.apply("lat"));
         double lon = Double.parseDouble(attrs.apply("lon"));
@@ -186,5 +186,5 @@
     }
 
-    static Note parseNoteBasic(Function<String, String> attrs) {
+    static Note parseNoteBasic(UnaryOperator<String> attrs) {
         return new Note(parseLatLon(attrs));
     }
@@ -194,5 +194,5 @@
     }
 
-    static Note parseNoteFull(Function<String, String> attrs) {
+    static Note parseNoteFull(UnaryOperator<String> attrs) {
         Note note = parseNoteBasic(attrs);
         String id = attrs.apply("id");
Index: /trunk/src/org/openstreetmap/josm/io/OsmApi.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 14435)
+++ /trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 14436)
@@ -21,5 +21,5 @@
 import java.util.Map;
 import java.util.function.Consumer;
-import java.util.function.Function;
+import java.util.function.UnaryOperator;
 
 import javax.xml.parsers.ParserConfigurationException;
@@ -367,5 +367,5 @@
 
     private void individualPrimitiveModification(String method, String verb, IPrimitive osm, ProgressMonitor monitor,
-            Consumer<String> consumer, Function<String, String> errHandler) throws OsmTransferException {
+            Consumer<String> consumer, UnaryOperator<String> errHandler) throws OsmTransferException {
         String ret = "";
         try {
Index: /trunk/src/org/openstreetmap/josm/tools/HiDPISupport.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/HiDPISupport.java	(revision 14435)
+++ /trunk/src/org/openstreetmap/josm/tools/HiDPISupport.java	(revision 14436)
@@ -15,4 +15,5 @@
 import java.util.Optional;
 import java.util.function.Function;
+import java.util.function.UnaryOperator;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
@@ -170,5 +171,5 @@
      * for each resolution variant
      */
-    public static Image processMRImage(Image img, Function<Image, Image> processor) {
+    public static Image processMRImage(Image img, UnaryOperator<Image> processor) {
         return processMRImages(Collections.singletonList(img), imgs -> processor.apply(imgs.get(0)));
     }
