Index: /trunk/src/org/openstreetmap/josm/data/ServerSidePreferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/ServerSidePreferences.java	(revision 6267)
+++ /trunk/src/org/openstreetmap/josm/data/ServerSidePreferences.java	(revision 6268)
@@ -64,7 +64,11 @@
                 BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
                 StringBuilder b = new StringBuilder();
-                for (String line = reader.readLine(); line != null; line = reader.readLine()) {
-                    b.append(line);
-                    b.append("\n");
+                try {
+                    for (String line = reader.readLine(); line != null; line = reader.readLine()) {
+                        b.append(line);
+                        b.append("\n");
+                    }
+                } finally {
+                    reader.close();
                 }
                 if (con instanceof HttpURLConnection) {
@@ -73,4 +77,5 @@
                 return b.toString();
             } catch (IOException e) {
+                Main.error(e);
                 e.printStackTrace();
             }
Index: /trunk/src/org/openstreetmap/josm/data/projection/Projections.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/projection/Projections.java	(revision 6267)
+++ /trunk/src/org/openstreetmap/josm/data/projection/Projections.java	(revision 6268)
@@ -33,4 +33,5 @@
 import org.openstreetmap.josm.io.MirroredInputStream;
 import org.openstreetmap.josm.tools.Pair;
+import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -125,7 +126,8 @@
     private static void loadInits() {
         Pattern epsgPattern = Pattern.compile("<(\\d+)>(.*)<>");
+        BufferedReader r = null;
         try {
             InputStream in = new MirroredInputStream("resource://data/epsg");
-            BufferedReader r = new BufferedReader(new InputStreamReader(in));
+            r = new BufferedReader(new InputStreamReader(in));
             String line, lastline = "";
             while ((line = r.readLine()) != null) {
@@ -144,5 +146,7 @@
             }
         } catch (IOException ex) {
-            throw new RuntimeException();
+            throw new RuntimeException(ex);
+        } finally {
+            Utils.close(r);
         }
     }
Index: /trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java	(revision 6267)
+++ /trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java	(revision 6268)
@@ -153,6 +153,7 @@
         ignoredErrors.clear();
         if (Main.pref.getBoolean(ValidatorPreference.PREF_USE_IGNORE, true)) {
+            BufferedReader in = null;
             try {
-                final BufferedReader in = new BufferedReader(new FileReader(getValidatorDir() + "ignorederrors"));
+                in = new BufferedReader(new FileReader(getValidatorDir() + "ignorederrors"));
                 for (String line = in.readLine(); line != null; line = in.readLine()) {
                     ignoredErrors.add(line);
@@ -162,4 +163,6 @@
             } catch (final IOException e) {
                 e.printStackTrace();
+            } finally {
+                Utils.close(in);
             }
         }
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 6267)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 6268)
@@ -62,4 +62,5 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.MultiMap;
+import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -205,4 +206,5 @@
             return;
         for (String source : sources.split(";")) {
+            BufferedReader reader = null;
             try {
                 MirroredInputStream s = new MirroredInputStream(source);
@@ -213,5 +215,5 @@
                     r = new InputStreamReader(s);
                 }
-                BufferedReader reader = new BufferedReader(r);
+                reader = new BufferedReader(r);
 
                 String okValue = null;
@@ -272,4 +274,6 @@
             } catch (IOException e) {
                 errorSources += source + "\n";
+            } finally {
+                Utils.close(reader);
             }
         }
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java	(revision 6267)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java	(revision 6268)
@@ -674,4 +674,5 @@
                     txtSource.append(line + "\n");
                 }
+                reader.close();
             } catch (IOException ex) {
                 txtSource.append("<ERROR: failed to read file!>");
Index: /trunk/src/org/openstreetmap/josm/gui/oauth/OsmOAuthAuthorizationClient.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/oauth/OsmOAuthAuthorizationClient.java	(revision 6267)
+++ /trunk/src/org/openstreetmap/josm/gui/oauth/OsmOAuthAuthorizationClient.java	(revision 6268)
@@ -212,15 +212,20 @@
 
     protected String extractToken(HttpURLConnection connection) {
-        try {
-            BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+        BufferedReader r = null;
+        try {
+            r = new BufferedReader(new InputStreamReader(connection.getInputStream()));
             String c;
             Pattern p = Pattern.compile(".*authenticity_token.*value=\"([^\"]+)\".*");
-            while((c = r.readLine()) != null) {
+            while ((c = r.readLine()) != null) {
                 Matcher m = p.matcher(c);
-                if(m.find())
+                if (m.find()) {
                     return m.group(1);
+                }
             }
         } catch (IOException e) {
+            Main.error(e);
             return null;
+        } finally {
+            Utils.close(r);
         }
         return null;
Index: /trunk/src/org/openstreetmap/josm/io/OsmApi.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 6267)
+++ /trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 6268)
@@ -621,6 +621,10 @@
                     if (requestBody != null) {
                         BufferedWriter bwr = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
-                        bwr.write(requestBody);
-                        bwr.flush();
+                        try {
+                            bwr.write(requestBody);
+                            bwr.flush();
+                        } finally {
+                            bwr.close();
+                        }
                     }
                     Utils.close(out);
@@ -657,7 +661,11 @@
                     BufferedReader in = new BufferedReader(new InputStreamReader(i));
                     String s;
-                    while((s = in.readLine()) != null) {
-                        responseBody.append(s);
-                        responseBody.append("\n");
+                    try {
+                        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 6267)
+++ /trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java	(revision 6268)
@@ -134,7 +134,11 @@
         String line;
         StringBuilder ba = new StringBuilder();
-        while ((line = br.readLine()) != null) {
-            ba.append(line);
-            ba.append("\n");
+        try {
+            while ((line = br.readLine()) != null) {
+                ba.append(line);
+                ba.append("\n");
+            }
+        } finally {
+            br.close();
         }
         String incomingData = ba.toString();
Index: /trunk/src/org/openstreetmap/josm/tools/Utils.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 6267)
+++ /trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 6268)
@@ -328,6 +328,6 @@
         try {
             c.close();
-        } catch(IOException e) {
-            // ignore
+        } catch (IOException e) {
+            Main.warn(e);
         }
     }
@@ -342,13 +342,19 @@
         try {
             zip.close();
-        } catch(IOException e) {
-            // ignore
-        }
-    }
-
-    private final static double EPSILION = 1e-11;
-
+        } catch (IOException e) {
+            Main.warn(e);
+        }
+    }
+
+    private final static double EPSILON = 1e-11;
+
+    /**
+     * Determines if the two given double values are equal (their delta being smaller than a fixed epsilon)
+     * @param a The first double value to compare
+     * @param b The second double value to compare
+     * @return {@code true} if {@code abs(a - b) <= 1e-11}, {@code false} otherwise
+     */
     public static boolean equalsEpsilon(double a, double b) {
-        return Math.abs(a - b) <= EPSILION;
+        return Math.abs(a - b) <= EPSILON;
     }
 
Index: /trunk/test/functional/org/openstreetmap/josm/gui/history/HistoryBrowserTest.java
===================================================================
--- /trunk/test/functional/org/openstreetmap/josm/gui/history/HistoryBrowserTest.java	(revision 6267)
+++ /trunk/test/functional/org/openstreetmap/josm/gui/history/HistoryBrowserTest.java	(revision 6268)
@@ -6,4 +6,5 @@
 import java.awt.BorderLayout;
 import java.io.File;
+import java.io.InputStream;
 import java.text.MessageFormat;
 import java.util.Properties;
@@ -37,5 +38,7 @@
         //
         try {
-            testProperties.load(HistoryBrowserTest.class.getResourceAsStream("/test-functional-env.properties"));
+            InputStream is = HistoryBrowserTest.class.getResourceAsStream("/test-functional-env.properties");
+            testProperties.load(is);
+            is.close();
         } catch(Exception e){
             logger.log(Level.SEVERE, MessageFormat.format("failed to load property file ''{0}''", "test-functional-env.properties"));
@@ -83,4 +86,7 @@
     }
 
+    /**
+     * Constructs a new {@code HistoryBrowserTest}.
+     */
     public HistoryBrowserTest(){
         build();
Index: /trunk/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java
===================================================================
--- /trunk/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java	(revision 6267)
+++ /trunk/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java	(revision 6268)
@@ -12,4 +12,5 @@
 import java.io.FileWriter;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.PrintWriter;
 import java.text.MessageFormat;
@@ -138,5 +139,7 @@
         //
         try {
-            testProperties.load(MultiFetchServerObjectReaderTest.class.getResourceAsStream("/test-functional-env.properties"));
+            InputStream is = MultiFetchServerObjectReaderTest.class.getResourceAsStream("/test-functional-env.properties");
+            testProperties.load(is);
+            is.close();
         } catch(Exception e){
             logger.log(Level.SEVERE, MessageFormat.format("failed to load property file ''{0}''", "test-functional-env.properties"));
Index: /trunk/test/functional/org/openstreetmap/josm/io/OsmServerBackreferenceReaderTest.java
===================================================================
--- /trunk/test/functional/org/openstreetmap/josm/io/OsmServerBackreferenceReaderTest.java	(revision 6267)
+++ /trunk/test/functional/org/openstreetmap/josm/io/OsmServerBackreferenceReaderTest.java	(revision 6268)
@@ -10,4 +10,5 @@
 import java.io.FileWriter;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.PrintWriter;
 import java.text.MessageFormat;
@@ -145,5 +146,7 @@
         //
         try {
-            testProperties.load(MultiFetchServerObjectReaderTest.class.getResourceAsStream("/test-functional-env.properties"));
+            InputStream is = MultiFetchServerObjectReaderTest.class.getResourceAsStream("/test-functional-env.properties");
+            testProperties.load(is);
+            is.close();
         } catch(Exception e){
             logger.log(Level.SEVERE, MessageFormat.format("failed to load property file ''{0}''", "test-functional-env.properties"));
