Index: trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java	(revision 7029)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java	(revision 7030)
@@ -658,13 +658,8 @@
             try {
                 InputStream is = s.getSourceInputStream();
-                try {
-                    BufferedReader reader = new BufferedReader(new InputStreamReader(is, Utils.UTF_8));
-                    try {
-                        String line;
-                        while ((line = reader.readLine()) != null) {
-                            txtSource.append(line + "\n");
-                        }
-                    } finally {
-                        reader.close();
+                try (BufferedReader reader = new BufferedReader(new InputStreamReader(is, Utils.UTF_8))) {
+                    String line;
+                    while ((line = reader.readLine()) != null) {
+                        txtSource.append(line + "\n");
                     }
                 } finally {
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 7029)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 7030)
@@ -235,6 +235,5 @@
                 return new XmlStyleSource(entry);
             else {
-                InputStreamReader reader = new InputStreamReader(in, Utils.UTF_8);
-                try {
+                try (InputStreamReader reader = new InputStreamReader(in, Utils.UTF_8)) {
                     WHILE: while (true) {
                         int c = reader.read();
@@ -253,6 +252,4 @@
                         }
                     }
-                } finally {
-                    reader.close();
                 }
                 Main.warn("Could not detect style type. Using default (xml).");
Index: trunk/src/org/openstreetmap/josm/io/GeoJSONWriter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/GeoJSONWriter.java	(revision 7029)
+++ trunk/src/org/openstreetmap/josm/io/GeoJSONWriter.java	(revision 7030)
@@ -60,14 +60,13 @@
         Map<String, Object> config = new HashMap<>(1);
         config.put(JsonGenerator.PRETTY_PRINTING, pretty);
-        JsonWriter writer = Json.createWriterFactory(config).createWriter(stringWriter);
-        JsonObjectBuilder object = Json.createObjectBuilder()
-                .add("type", "FeatureCollection")
-                .add("generator", "JOSM");
-        appendLayerBounds(layer.data, object);
-        appendLayerFeatures(layer.data, object);
-        writer.writeObject(object.build());
-        String result = stringWriter.toString();
-        writer.close();
-        return result;
+        try (JsonWriter writer = Json.createWriterFactory(config).createWriter(stringWriter)) {
+            JsonObjectBuilder object = Json.createObjectBuilder()
+                    .add("type", "FeatureCollection")
+                    .add("generator", "JOSM");
+            appendLayerBounds(layer.data, object);
+            appendLayerFeatures(layer.data, object);
+            writer.writeObject(object.build());
+            return stringWriter.toString();
+        }
     }
     
Index: trunk/src/org/openstreetmap/josm/io/OsmApi.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 7029)
+++ trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 7030)
@@ -632,10 +632,7 @@
                     // even if there is no payload.
                     if (requestBody != null) {
-                        BufferedWriter bwr = new BufferedWriter(new OutputStreamWriter(out, Utils.UTF_8));
-                        try {
+                        try (BufferedWriter bwr = new BufferedWriter(new OutputStreamWriter(out, Utils.UTF_8))) {
                             bwr.write(requestBody);
                             bwr.flush();
-                        } finally {
-                            bwr.close();
                         }
                     }
@@ -671,13 +668,10 @@
                     // Unauthorized, see #3887.
                     //
-                    BufferedReader in = new BufferedReader(new InputStreamReader(i, Utils.UTF_8));
                     String s;
-                    try {
+                    try (BufferedReader in = new BufferedReader(new InputStreamReader(i, Utils.UTF_8))) {
                         while((s = in.readLine()) != null) {
                             responseBody.append(s);
                             responseBody.append("\n");
                         }
-                    } finally {
-                        in.close();
                     }
                 }
Index: trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java	(revision 7029)
+++ trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java	(revision 7030)
@@ -141,14 +141,11 @@
         URLConnection openConnection = Utils.openHttpConnection(getCapabilitiesUrl);
         InputStream inputStream = openConnection.getInputStream();
-        BufferedReader br = new BufferedReader(UTFInputStreamReader.create(inputStream));
-        String line;
         StringBuilder ba = new StringBuilder();
-        try {
+        try (BufferedReader br = new BufferedReader(UTFInputStreamReader.create(inputStream))) {
+            String line;
             while ((line = br.readLine()) != null) {
                 ba.append(line);
                 ba.append("\n");
             }
-        } finally {
-            br.close();
         }
         String incomingData = ba.toString();
Index: trunk/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java	(revision 7029)
+++ trunk/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java	(revision 7030)
@@ -383,16 +383,25 @@
 
     public static String getHandlerInfoAsJSON(String cmd) {
-        StringWriter w = new StringWriter();
-        PrintWriter r = new PrintWriter(w);
-        RequestHandler handler = null;
-        try {
-            Class<?> c = handlers.get(cmd);
-            if (c==null) return null;
-            handler = handlers.get(cmd).newInstance();
-        } catch (Exception ex) {
-            Main.error(ex);
+        try (StringWriter w = new StringWriter()) {
+            PrintWriter r = new PrintWriter(w);
+            RequestHandler handler = null;
+            try {
+                Class<?> c = handlers.get(cmd);
+                if (c==null) return null;
+                handler = handlers.get(cmd).newInstance();
+            } catch (InstantiationException | IllegalAccessException ex) {
+                Main.error(ex);
+                return null;
+            }
+    
+            printJsonInfo(cmd, r, handler);
+            return w.toString();
+        } catch (IOException e) {
+            Main.error(e);
             return null;
         }
-
+    }
+
+    private static void printJsonInfo(String cmd, PrintWriter r, RequestHandler handler) {
         r.printf("{ \"request\" : \"%s\"", cmd);
         if (handler.getUsage() != null) {
@@ -438,13 +447,4 @@
         }
         r.append("]}");
-        try {
-            return w.toString();
-        } finally {
-            try {
-                w.close();
-            } catch (IOException ex) {
-                Main.warn(ex);
-            }
-        }
     }
 
