Index: trunk/test/unit/org/openstreetmap/josm/data/imagery/ShapeTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/imagery/ShapeTest.java	(revision 16436)
+++ trunk/test/unit/org/openstreetmap/josm/data/imagery/ShapeTest.java	(revision 16436)
@@ -0,0 +1,31 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.imagery;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Arrays;
+
+import org.junit.Test;
+
+/**
+ * Unit tests for class {@link Shape}.
+ */
+public class ShapeTest {
+
+    /**
+     * Tests string conversion
+     */
+    @Test
+    public void test() {
+        Shape shape = new Shape();
+        shape.addPoint("47.1", "11.1");
+        shape.addPoint("47.2", "11.2");
+        shape.addPoint("47.3", "11.3");
+        String shapeString = "47.1 11.1 47.2 11.2 47.3 11.3";
+        Shape fromString = new Shape(shapeString, " ");
+        assertEquals(shape, fromString);
+        assertEquals(shapeString, shape.encodeAsString(" "));
+        assertEquals("47.1//11.1//47.2//11.2//47.3//11.3", shape.encodeAsString("//"));
+        assertEquals("47.1,11.1,47.2,11.2,47.3,11.3;47.1,11.1,47.2,11.2,47.3,11.3", Shape.encodeAsString(Arrays.asList(shape, shape)));
+    }
+}
Index: trunk/test/unit/org/openstreetmap/josm/data/osm/ChangesetTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/osm/ChangesetTest.java	(revision 16434)
+++ trunk/test/unit/org/openstreetmap/josm/data/osm/ChangesetTest.java	(revision 16436)
@@ -13,4 +13,6 @@
 import java.util.HashMap;
 import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
 
 import org.junit.Assert;
@@ -65,9 +67,6 @@
         // Add a map with too long values => IllegalArgumentException
         keys = new HashMap<>();
-        StringBuilder b = new StringBuilder(MAX_CHANGESET_TAG_LENGTH + 1);
-        for (int i = 0; i < MAX_CHANGESET_TAG_LENGTH + 1; i++) {
-           b.append("x");
-        }
-        keys.put("test", b.toString());
+        // Java 11: use String.repeat
+        keys.put("test", IntStream.range(0, MAX_CHANGESET_TAG_LENGTH + 1).mapToObj(i -> "x").collect(Collectors.joining()));
         try {
             cs.setKeys(keys);
Index: trunk/test/unit/org/openstreetmap/josm/data/projection/ProjectionRegressionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/projection/ProjectionRegressionTest.java	(revision 16434)
+++ trunk/test/unit/org/openstreetmap/josm/data/projection/ProjectionRegressionTest.java	(revision 16436)
@@ -13,5 +13,4 @@
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -19,4 +18,5 @@
 import java.util.Set;
 import java.util.TreeSet;
+import java.util.stream.Collectors;
 
 import org.junit.BeforeClass;
@@ -160,8 +160,5 @@
     public void testNonRegression() throws IOException {
         List<TestData> allData = readData();
-        Set<String> dataCodes = new HashSet<>();
-        for (TestData data : allData) {
-            dataCodes.add(data.code);
-        }
+        Set<String> dataCodes = allData.stream().map(data -> data.code).collect(Collectors.toSet());
 
         StringBuilder fail = new StringBuilder();
Index: trunk/test/unit/org/openstreetmap/josm/io/GeoJSONReaderTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/GeoJSONReaderTest.java	(revision 16434)
+++ trunk/test/unit/org/openstreetmap/josm/io/GeoJSONReaderTest.java	(revision 16436)
@@ -15,4 +15,5 @@
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.IntStream;
 
 import org.junit.Rule;
@@ -160,10 +161,6 @@
             return false;
         }
-        for (int i = 0; i < ((Way) p1).getNodes().size(); i++) {
-            if (!areEqualNodes(((Way) p1).getNode(i), ((Way) p2).getNode(i))) {
-                return false;
-            }
-        }
-        return true;
+        return IntStream.range(0, ((Way) p1).getNodes().size())
+                .allMatch(i -> areEqualNodes(((Way) p1).getNode(i), ((Way) p2).getNode(i)));
     }
 }
Index: trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java	(revision 16434)
+++ trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java	(revision 16436)
@@ -13,4 +13,5 @@
 import java.security.GeneralSecurityException;
 import java.security.KeyStore.TrustedCertificateEntry;
+import java.util.stream.Collectors;
 
 import org.junit.After;
@@ -88,13 +89,9 @@
         try (InputStream is = connection.getErrorStream()) {
             // TODO this code should be refactored somewhere in Utils as it is used in several JOSM classes
-            StringBuilder responseBody = new StringBuilder();
+            String responseBody;
             try (BufferedReader in = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))) {
-                String s;
-                while ((s = in.readLine()) != null) {
-                    responseBody.append(s);
-                    responseBody.append("\n");
-                }
+                responseBody = in.lines().collect(Collectors.joining("\n"));
             }
-            assert responseBody.toString().contains(RequestProcessor.getUsageAsHtml());
+            assert responseBody.contains(RequestProcessor.getUsageAsHtml());
         }
     }
