Index: /trunk/test/functional/org/openstreetmap/josm/gui/mappaint/MapCSSRendererTest.java
===================================================================
--- /trunk/test/functional/org/openstreetmap/josm/gui/mappaint/MapCSSRendererTest.java	(revision 19055)
+++ /trunk/test/functional/org/openstreetmap/josm/gui/mappaint/MapCSSRendererTest.java	(revision 19056)
@@ -41,4 +41,5 @@
 import org.openstreetmap.josm.testutils.annotations.Projection;
 import org.openstreetmap.josm.tools.ColorHelper;
+import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -354,4 +355,8 @@
             // Sometimes Java changes how things are rendered. When that happens, use separate reference files. It is
             // usually "reference" + javaSuffix + ".png".
+            final File customReferenceFile = new File(getTestDirectory() + "/reference-java" + Utils.getJavaVersion() + ".png");
+            if (customReferenceFile.isFile()) {
+                return customReferenceFile;
+            }
             return new File(getTestDirectory() + "/reference.png");
         }
Index: /trunk/test/unit/org/openstreetmap/josm/TestUtils.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/TestUtils.java	(revision 19055)
+++ /trunk/test/unit/org/openstreetmap/josm/TestUtils.java	(revision 19056)
@@ -592,6 +592,6 @@
             ) {
                 assertArrayEquals(
-                    Utils.readBytesFromStream(streamA),
-                    Utils.readBytesFromStream(streamB)
+                    streamA.readAllBytes(),
+                    streamB.readAllBytes()
                 );
             }
Index: /trunk/test/unit/org/openstreetmap/josm/actions/SessionSaveActionTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/actions/SessionSaveActionTest.java	(revision 19055)
+++ /trunk/test/unit/org/openstreetmap/josm/actions/SessionSaveActionTest.java	(revision 19056)
@@ -55,5 +55,5 @@
 
         JOptionPaneSimpleMocker mocker = new JOptionPaneSimpleMocker(Collections.singletonMap(overrideStr, 0));
-        SessionSaveAction.setCurrentSession(jos, false, Arrays.asList(gpx, osm)); //gpx and OSM layer
+        SessionSaveAction.setCurrentSession(jos, Arrays.asList(gpx, osm)); //gpx and OSM layer
         MainApplication.getLayerManager().addLayer(gpx); //only gpx layer
         saveAction.actionPerformed(null); //Complain that OSM layer was removed
Index: /trunk/test/unit/org/openstreetmap/josm/actions/downloadtasks/PluginDownloadTaskTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/actions/downloadtasks/PluginDownloadTaskTest.java	(revision 19055)
+++ /trunk/test/unit/org/openstreetmap/josm/actions/downloadtasks/PluginDownloadTaskTest.java	(revision 19056)
@@ -19,5 +19,4 @@
 import org.openstreetmap.josm.plugins.PluginInformation;
 import org.openstreetmap.josm.testutils.annotations.AssumeRevision;
-import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -129,5 +128,5 @@
             assertArrayEquals(
                 existingPluginContents,
-                Utils.readBytesFromStream(pluginDirPluginStream)
+                pluginDirPluginStream.readAllBytes()
             );
         }
Index: /trunk/test/unit/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreferenceTestIT.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreferenceTestIT.java	(revision 19055)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreferenceTestIT.java	(revision 19056)
@@ -170,5 +170,5 @@
                 }
                 try {
-                    byte[] data = Utils.readBytesFromStream(response.getContent());
+                    byte[] data = response.getContent().readAllBytes();
                     if (response.getResponseCode() < 300) {
                         workingURLs.put(url, data);
Index: /trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java	(revision 19055)
+++ /trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java	(revision 19056)
@@ -17,5 +17,4 @@
 import org.openstreetmap.josm.testutils.annotations.AssertionsInEDT;
 import org.openstreetmap.josm.testutils.annotations.HTTPS;
-import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -60,5 +59,5 @@
         assertEquals(HttpURLConnection.HTTP_BAD_REQUEST, connection.getResponseCode());
         try (InputStream is = connection.getErrorStream()) {
-            String responseBody = new String(Utils.readBytesFromStream(is), StandardCharsets.UTF_8);
+            String responseBody = new String(is.readAllBytes(), StandardCharsets.UTF_8);
             assert responseBody.contains(RequestProcessor.getUsageAsHtml());
         }
Index: /trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java	(revision 19055)
+++ /trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java	(revision 19056)
@@ -3,9 +3,9 @@
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.fail;
 
 import java.awt.Color;
 import java.io.File;
 import java.io.IOException;
+import java.io.UncheckedIOException;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
@@ -134,9 +134,8 @@
                 return Collections.list(zipFile.entries()).stream().collect(Collectors.toMap(ZipEntry::getName, e -> {
                     try {
-                        return Utils.readBytesFromStream(zipFile.getInputStream(e));
+                        return zipFile.getInputStream(e).readAllBytes();
                     } catch (IOException ex) {
-                        fail(ex);
+                        throw new UncheckedIOException(ex);
                     }
-                    return null;
                 }));
             }
@@ -275,10 +274,10 @@
 
         Path path = Paths.get(TestUtils.getTestDataRoot() + "/sessions/gpx_markers_combined.jos");
-        String expected = new String(Files.readAllBytes(path), StandardCharsets.UTF_8).replace("\r", "");
+        String expected = Files.readString(path).replace("\r", "");
         String actual = new String(bytes.get("session.jos"), StandardCharsets.UTF_8).replace("\r", "");
         assertEquals(expected, actual);
 
         path = Paths.get(TestUtils.getTestDataRoot() + "/sessions/data_export.gpx");
-        expected = new String(Files.readAllBytes(path), StandardCharsets.UTF_8).replace("\r", "");
+        expected = Files.readString(path).replace("\r", "");
         actual = new String(bytes.get("layers/01/data.gpx"), StandardCharsets.UTF_8).replace("\r", "");
         assertEquals(expected, actual);
@@ -291,15 +290,15 @@
 
         path = Paths.get(TestUtils.getTestDataRoot() + "/sessions/gpx_markers.jos");
-        expected = new String(Files.readAllBytes(path), StandardCharsets.UTF_8).replace("\r", "");
+        expected = Files.readString(path).replace("\r", "");
         actual = new String(bytes.get("session.jos"), StandardCharsets.UTF_8).replace("\r", "");
         assertEquals(expected, actual);
 
         path = Paths.get(TestUtils.getTestDataRoot() + "/sessions/data_export.gpx");
-        expected = new String(Files.readAllBytes(path), StandardCharsets.UTF_8).replace("\r", "");
+        expected = Files.readString(path).replace("\r", "");
         actual = new String(bytes.get("layers/01/data.gpx"), StandardCharsets.UTF_8).replace("\r", "");
         assertEquals(expected, actual);
 
         path = Paths.get(TestUtils.getTestDataRoot() + "/sessions/markers.gpx");
-        expected = new String(Files.readAllBytes(path), StandardCharsets.UTF_8).replace("\r", "");
+        expected = Files.readString(path).replace("\r", "");
         actual = new String(bytes.get("layers/02/data.gpx"), StandardCharsets.UTF_8).replace("\r", "");
         assertEquals(expected, actual);
Index: /trunk/test/unit/org/openstreetmap/josm/testutils/annotations/AnnotationUtils.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/testutils/annotations/AnnotationUtils.java	(revision 19055)
+++ /trunk/test/unit/org/openstreetmap/josm/testutils/annotations/AnnotationUtils.java	(revision 19056)
@@ -48,10 +48,10 @@
     public static void resetStaticClass(Class<?> clazz) throws ReflectiveOperationException {
         for (Field field : clazz.getDeclaredFields()) {
-            if (!field.isAccessible()) {
-                field.setAccessible(true);
-            }
             // Don't reset fields that are not static
             if ((field.getModifiers() & Modifier.STATIC) == 0) {
                 continue;
+            }
+            if (!field.canAccess(null)) {
+                field.setAccessible(true);
             }
             final boolean isFinal = (field.getModifiers() & Modifier.FINAL) != 0;
Index: /trunk/test/unit/org/openstreetmap/josm/testutils/annotations/BasicWiremock.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/testutils/annotations/BasicWiremock.java	(revision 19055)
+++ /trunk/test/unit/org/openstreetmap/josm/testutils/annotations/BasicWiremock.java	(revision 19056)
@@ -41,5 +41,6 @@
 
 import com.github.tomakehurst.wiremock.WireMockServer;
-import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
+import com.github.tomakehurst.wiremock.client.WireMock;
+import com.github.tomakehurst.wiremock.extension.ResponseTransformerV2;
 import com.github.tomakehurst.wiremock.verification.LoggedRequest;
 
@@ -65,5 +66,5 @@
 
     /**
-     * {@link ResponseTransformer} for use with the WireMock server.
+     * {@link ResponseTransformerV2} for use with the WireMock server.
      * Current constructors supported:
      * <ul>
@@ -73,5 +74,5 @@
      * @return The transformers to instantiate
      */
-    Class<? extends ResponseTransformer>[] responseTransformers() default {};
+    Class<? extends ResponseTransformerV2>[] responseTransformers() default {};
 
     /**
@@ -92,11 +93,11 @@
                     .orElseThrow(() -> new IllegalArgumentException("There must be a @BasicWiremock annotation"));
             return context.getStore(namespace).getOrComputeIfAbsent(WireMockServer.class, clazz -> {
-                final List<ResponseTransformer> transformers = new ArrayList<>(annotation.responseTransformers().length);
-                for (Class<? extends ResponseTransformer> responseTransformer : annotation.responseTransformers()) {
+                final List<ResponseTransformerV2> transformers = new ArrayList<>(annotation.responseTransformers().length);
+                for (Class<? extends ResponseTransformerV2> responseTransformer : annotation.responseTransformers()) {
                     for (Pair<Class<?>[], Object[]> parameterMapping : Arrays.asList(
                             new Pair<>(new Class<?>[] {ExtensionContext.class }, new Object[] {context }),
                             new Pair<>(new Class<?>[0], new Object[0]))) {
                         try {
-                            Constructor<? extends ResponseTransformer> constructor = responseTransformer
+                            Constructor<? extends ResponseTransformerV2> constructor = responseTransformer
                                     .getConstructor(parameterMapping.a);
                             transformers.add(constructor.newInstance(parameterMapping.b));
@@ -109,5 +110,5 @@
                 return new WireMockServer(
                     options().usingFilesUnderDirectory(Utils.isStripEmpty(annotation.value()) ? TestUtils.getTestDataRoot() :
-                            annotation.value()).extensions(transformers.toArray(new ResponseTransformer[0])).dynamicPort());
+                            annotation.value()).extensions(transformers.toArray(new ResponseTransformerV2[0])).dynamicPort());
             }, WireMockServer.class);
         }
@@ -167,5 +168,5 @@
                 for (Field field : wireMockFields) {
                     if (WireMockServer.class.isAssignableFrom(field.getType())) {
-                        final boolean isAccessible = field.isAccessible();
+                        final boolean isAccessible = field.canAccess(context.getRequiredTestInstance());
                         field.setAccessible(true);
                         try {
@@ -214,5 +215,9 @@
             }
             super.beforeAll(context);
-            Config.getPref().put("osm-server.url", getWiremock(context).baseUrl());
+            Config.getPref().put("osm-server.url", getWiremock(context).baseUrl() + "/api");
+            getWiremock(context).stubFor(WireMock.get("/api/0.6/capabilities")
+                    .willReturn(WireMock.aResponse().withBodyFile("api/0.6/capabilities")));
+            getWiremock(context).stubFor(WireMock.get("/api/capabilities")
+                    .willReturn(WireMock.aResponse().withBodyFile("api/capabilities")));
             OsmApi.getOsmApi().initialize(NullProgressMonitor.INSTANCE);
         }
Index: /trunk/test/unit/org/openstreetmap/josm/tools/UtilsTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/UtilsTest.java	(revision 19055)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/UtilsTest.java	(revision 19056)
@@ -11,4 +11,5 @@
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -22,6 +23,7 @@
 import java.util.regex.Pattern;
 
+import org.junit.jupiter.api.Test;
+
 import net.trajano.commons.testing.UtilityClassTestUtil;
-import org.junit.jupiter.api.Test;
 
 /**
@@ -354,6 +356,8 @@
      * Tests if readBytesFromStream handles null streams (might happen when there is no data on error stream)
      * @throws IOException in case of I/O error
-     */
-    @Test
+     * @deprecated {@link Utils#readBytesFromStream(InputStream)} is deprecated since the JVM has the same functionality.
+     */
+    @Test
+    @Deprecated
     void testNullStreamForReadBytesFromStream() throws IOException {
         assertEquals(0, Utils.readBytesFromStream(null).length, "Empty on null stream");
