Index: trunk/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java	(revision 13204)
@@ -3,7 +3,8 @@
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
+import java.nio.channels.FileChannel;
 import java.nio.channels.FileLock;
+import java.nio.file.StandardOpenOption;
 import java.util.Arrays;
 import java.util.Properties;
@@ -110,5 +111,5 @@
             Logging.warn("Cannot create cache dir lock file");
         }
-        cacheDirLock = new FileOutputStream(cacheDirLockPath).getChannel().tryLock();
+        cacheDirLock = FileChannel.open(cacheDirLockPath.toPath(), StandardOpenOption.WRITE).tryLock();
 
         if (cacheDirLock == null)
Index: trunk/src/org/openstreetmap/josm/data/projection/datum/NTV2Proj4DirGridShiftFileSource.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/datum/NTV2Proj4DirGridShiftFileSource.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/data/projection/datum/NTV2Proj4DirGridShiftFileSource.java	(revision 13204)
@@ -3,7 +3,8 @@
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
+import java.io.IOException;
 import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.InvalidPathException;
 import java.util.Arrays;
 import java.util.Collections;
@@ -63,8 +64,8 @@
         if (grid != null) {
             try {
-                return new FileInputStream(grid.getAbsoluteFile());
-            } catch (FileNotFoundException ex) {
-                Logging.warn("NTV2 grid shift file not found: " + grid);
-                Logging.trace(ex);
+                return Files.newInputStream(grid.getAbsoluteFile().toPath());
+            } catch (IOException | InvalidPathException ex) {
+                Logging.warn("Unable to open NTV2 grid shift file: " + grid);
+                Logging.debug(ex);
             }
         }
Index: trunk/src/org/openstreetmap/josm/gui/io/CustomConfigurator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/CustomConfigurator.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/gui/io/CustomConfigurator.java	(revision 13204)
@@ -4,13 +4,13 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.CharArrayReader;
 import java.io.CharArrayWriter;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.InvalidPathException;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -397,8 +397,8 @@
                 String fileDir = file.getParentFile().getAbsolutePath();
                 if (fileDir != null) engine.eval("scriptDir='"+normalizeDirName(fileDir) +"';");
-                try (InputStream is = new BufferedInputStream(new FileInputStream(file))) {
+                try (InputStream is = Files.newInputStream(file.toPath())) {
                     openAndReadXML(is);
                 }
-            } catch (ScriptException | IOException | SecurityException ex) {
+            } catch (ScriptException | IOException | SecurityException | InvalidPathException ex) {
                 PreferencesUtils.log(ex, "Error reading custom preferences:");
             }
Index: trunk/src/org/openstreetmap/josm/gui/io/DownloadFileTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/DownloadFileTask.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/gui/io/DownloadFileTask.java	(revision 13204)
@@ -6,5 +6,4 @@
 import java.awt.Component;
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -14,4 +13,5 @@
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
+import java.nio.file.InvalidPathException;
 import java.nio.file.StandardCopyOption;
 import java.util.Enumeration;
@@ -115,5 +115,5 @@
             try (
                 InputStream in = downloadConnection.getResponse().getContent();
-                OutputStream out = new FileOutputStream(file)
+                OutputStream out = Files.newOutputStream(file.toPath())
             ) {
                 byte[] buffer = new byte[32_768];
@@ -145,5 +145,5 @@
             Logging.warn(msg);
             throw new DownloadException(msg, e);
-        } catch (IOException e) {
+        } catch (IOException | InvalidPathException e) {
             if (canceled)
                 return;
Index: trunk/src/org/openstreetmap/josm/gui/io/importexport/NoteExporter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/importexport/NoteExporter.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/gui/io/importexport/NoteExporter.java	(revision 13204)
@@ -5,7 +5,7 @@
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.nio.file.Files;
 
 import org.openstreetmap.josm.actions.ExtensionFileFilter;
@@ -40,5 +40,5 @@
         Logging.info("exporting notes to file: " + file);
         if (layer instanceof NoteLayer) {
-            try (OutputStream os = new FileOutputStream(file);
+            try (OutputStream os = Files.newOutputStream(file.toPath());
                  NoteWriter writer = new NoteWriter(os)) {
                 writer.write(((NoteLayer) layer).getNoteData());
Index: trunk/src/org/openstreetmap/josm/gui/io/importexport/ValidatorErrorExporter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/importexport/ValidatorErrorExporter.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/gui/io/importexport/ValidatorErrorExporter.java	(revision 13204)
@@ -5,7 +5,7 @@
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.nio.file.Files;
 
 import org.openstreetmap.josm.actions.ExtensionFileFilter;
@@ -44,5 +44,5 @@
         if (layer instanceof ValidatorLayer && editLayer != null) {
             Logging.info("exporting validation errors to file: " + file);
-            try (OutputStream os = new FileOutputStream(file);
+            try (OutputStream os = Files.newOutputStream(file.toPath());
                  ValidatorErrorWriter writer = new ValidatorErrorWriter(os)) {
                 writer.write(editLayer.validationErrors);
Index: trunk/src/org/openstreetmap/josm/gui/io/importexport/WMSLayerExporter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/importexport/WMSLayerExporter.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/gui/io/importexport/WMSLayerExporter.java	(revision 13204)
@@ -3,7 +3,7 @@
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.ObjectOutputStream;
+import java.nio.file.Files;
 
 import org.openstreetmap.josm.data.StructUtils;
@@ -38,8 +38,8 @@
 
         if (layer instanceof AbstractTileSourceLayer) {
-            try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file))) {
+            try (ObjectOutputStream oos = new ObjectOutputStream(Files.newOutputStream(file.toPath()))) {
                 oos.writeInt(CURRENT_FILE_VERSION); // file version
                 oos.writeObject(MainApplication.getMap().mapView.getCenter());
-                ImageryPreferenceEntry entry = new ImageryPreferenceEntry(((AbstractTileSourceLayer) layer).getInfo());
+                ImageryPreferenceEntry entry = new ImageryPreferenceEntry(((AbstractTileSourceLayer<?>) layer).getInfo());
                 oos.writeObject(StructUtils.serializeStruct(entry, ImageryPreferenceEntry.class));
             }
Index: trunk/src/org/openstreetmap/josm/gui/io/importexport/WMSLayerImporter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/importexport/WMSLayerImporter.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/gui/io/importexport/WMSLayerImporter.java	(revision 13204)
@@ -5,8 +5,8 @@
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InvalidClassException;
 import java.io.ObjectInputStream;
+import java.nio.file.Files;
 import java.util.Map;
 
@@ -49,5 +49,5 @@
         final ImageryLayer layer;
 
-        try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) {
+        try (ObjectInputStream ois = new ObjectInputStream(Files.newInputStream(file.toPath()))) {
             int sfv = ois.readInt();
             if (sfv < 5) {
Index: trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java	(revision 13204)
@@ -21,7 +21,7 @@
 import java.awt.event.WindowEvent;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.file.Files;
 import java.text.DateFormat;
 import java.text.ParseException;
@@ -331,7 +331,7 @@
         private InputStream createInputStream(File sel) throws IOException {
             if (Utils.hasExtension(sel, "gpx.gz")) {
-                return new GZIPInputStream(new FileInputStream(sel));
+                return new GZIPInputStream(Files.newInputStream(sel.toPath()));
             } else {
-                return new FileInputStream(sel);
+                return Files.newInputStream(sel.toPath());
             }
         }
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/RenderingCLI.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/RenderingCLI.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/RenderingCLI.java	(revision 13204)
@@ -7,7 +7,8 @@
 import java.awt.image.BufferedImage;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
@@ -543,10 +544,10 @@
     }
 
-    private DataSet loadDataset() throws FileNotFoundException, IllegalDataException {
+    private DataSet loadDataset() throws IOException, IllegalDataException {
         if (argInput == null) {
             throw new IllegalArgumentException(tr("Missing argument - input data file ({0})", "--input|-i"));
         }
         try {
-            return OsmReader.parseDataSet(new FileInputStream(argInput), null);
+            return OsmReader.parseDataSet(Files.newInputStream(Paths.get(argInput)), null);
         } catch (IllegalDataException e) {
             throw new IllegalDataException(tr("In .osm data file ''{0}'' - ", argInput) + e.getMessage());
Index: trunk/src/org/openstreetmap/josm/io/CacheCustomContent.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/CacheCustomContent.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/io/CacheCustomContent.java	(revision 13204)
@@ -5,8 +5,8 @@
 import java.io.BufferedOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.InvalidPathException;
 import java.util.concurrent.TimeUnit;
 
@@ -185,10 +185,10 @@
      */
     private void loadFromDisk() throws T {
-        try (BufferedInputStream input = new BufferedInputStream(new FileInputStream(path))) {
+        try (BufferedInputStream input = new BufferedInputStream(Files.newInputStream(path.toPath()))) {
             this.data = new byte[input.available()];
             if (input.read(this.data) < this.data.length) {
                 Logging.error("Failed to read expected contents from "+path);
             }
-        } catch (IOException e) {
+        } catch (IOException | InvalidPathException e) {
             Logging.trace(e);
             if (!isOffline()) {
@@ -202,8 +202,8 @@
      */
     private void saveToDisk() {
-        try (BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(path))) {
+        try (BufferedOutputStream output = new BufferedOutputStream(Files.newOutputStream(path.toPath()))) {
             output.write(this.data);
             output.flush();
-        } catch (IOException e) {
+        } catch (IOException | InvalidPathException e) {
             Logging.error(e);
         }
Index: trunk/src/org/openstreetmap/josm/io/CachedFile.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/CachedFile.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/io/CachedFile.java	(revision 13204)
@@ -8,5 +8,4 @@
 import java.io.Closeable;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -218,5 +217,5 @@
             }
         }
-        return new FileInputStream(file);
+        return Files.newInputStream(file.toPath());
     }
 
Index: trunk/src/org/openstreetmap/josm/io/Compression.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/Compression.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/io/Compression.java	(revision 13204)
@@ -3,10 +3,9 @@
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 import java.util.zip.GZIPInputStream;
 import java.util.zip.GZIPOutputStream;
@@ -150,5 +149,5 @@
      */
     public static InputStream getUncompressedFileInputStream(File file) throws IOException {
-        FileInputStream in = new FileInputStream(file);
+        InputStream in = Files.newInputStream(file.toPath());
         try {
             return byExtension(file.getName()).getUncompressedInputStream(in);
@@ -188,5 +187,5 @@
      */
     public static OutputStream getCompressedFileOutputStream(File file) throws IOException {
-        FileOutputStream out = new FileOutputStream(file);
+        OutputStream out = Files.newOutputStream(file.toPath());
         try {
             return byExtension(file.getName()).getCompressedOutputStream(out);
Index: trunk/src/org/openstreetmap/josm/io/session/SessionReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/session/SessionReader.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/io/session/SessionReader.java	(revision 13204)
@@ -7,5 +7,4 @@
 import java.io.BufferedInputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -15,4 +14,5 @@
 import java.net.URISyntaxException;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -715,9 +715,5 @@
             }
         } else {
-            try {
-                return new FileInputStream(sessionFile);
-            } catch (FileNotFoundException ex) {
-                throw new IOException(ex);
-            }
+            return Files.newInputStream(sessionFile.toPath());
         }
     }
Index: trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java	(revision 13204)
@@ -4,10 +4,9 @@
 import java.io.BufferedOutputStream;
 import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -331,8 +330,6 @@
      */
     public void write(File f) throws IOException {
-        try (OutputStream out = new FileOutputStream(f)) {
+        try (OutputStream out = Files.newOutputStream(f.toPath())) {
             write(out);
-        } catch (FileNotFoundException e) {
-            throw new IOException(e);
         }
     }
Index: trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 13204)
@@ -5,9 +5,10 @@
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.reflect.Constructor;
 import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.InvalidPathException;
 import java.text.MessageFormat;
 import java.util.ArrayList;
@@ -114,5 +115,5 @@
         this.file = file;
         try (
-            FileInputStream fis = new FileInputStream(file);
+            InputStream fis = Files.newInputStream(file.toPath());
             JarInputStream jar = new JarInputStream(fis)
         ) {
@@ -122,5 +123,5 @@
             scanManifest(manifest, false);
             libraries.add(0, Utils.fileToURL(file));
-        } catch (IOException e) {
+        } catch (IOException | InvalidPathException e) {
             throw new PluginException(name, e);
         }
Index: trunk/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java	(revision 13204)
@@ -5,7 +5,9 @@
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.FilenameFilter;
 import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.InvalidPathException;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -145,5 +147,5 @@
 
     protected void processLocalPluginInformationFile(File file) throws PluginListParseException {
-        try (FileInputStream fin = new FileInputStream(file)) {
+        try (InputStream fin = Files.newInputStream(file.toPath())) {
             List<PluginInformation> pis = new PluginListParser().parse(fin);
             for (PluginInformation pi : pis) {
@@ -154,5 +156,5 @@
                 availablePlugins.put(pi.name, pi);
             }
-        } catch (IOException e) {
+        } catch (IOException | InvalidPathException e) {
             throw new PluginListParseException(e);
         }
Index: trunk/src/org/openstreetmap/josm/tools/I18n.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 13204)
@@ -4,5 +4,4 @@
 import java.io.BufferedInputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -11,4 +10,6 @@
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.InvalidPathException;
 import java.text.MessageFormat;
 import java.util.ArrayList;
@@ -372,5 +373,5 @@
         final String langfile = "data/"+loadedCode+".lang";
         try (
-            FileInputStream fis = new FileInputStream(source);
+            InputStream fis = Files.newInputStream(source.toPath());
             JarInputStream jar = new JarInputStream(fis)
         ) {
@@ -384,5 +385,5 @@
             if (found) {
                 try (
-                    FileInputStream fisTrans = new FileInputStream(source);
+                    InputStream fisTrans = Files.newInputStream(source.toPath());
                     JarInputStream jarTrans = new JarInputStream(fisTrans)
                 ) {
@@ -397,6 +398,5 @@
                 }
             }
-        } catch (IOException e) {
-            // Ignore
+        } catch (IOException | InvalidPathException e) {
             Logging.trace(e);
         }
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java	(revision 13204)
@@ -8,6 +8,6 @@
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -403,5 +403,5 @@
         if (f.exists()) {
             CertificateFactory fact = CertificateFactory.getInstance("X.509");
-            try (FileInputStream is = new FileInputStream(f)) {
+            try (InputStream is = Files.newInputStream(f.toPath())) {
                 return (X509Certificate) fact.generateCertificate(is);
             }
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java	(revision 13204)
@@ -32,6 +32,6 @@
 import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
@@ -42,4 +42,5 @@
 import java.nio.file.FileSystems;
 import java.nio.file.Files;
+import java.nio.file.InvalidPathException;
 import java.nio.file.Path;
 import java.security.InvalidKeyException;
@@ -518,5 +519,5 @@
             return;
         }
-        try (FileInputStream fis = new FileInputStream(templateFile.toFile())) {
+        try (InputStream fis = Files.newInputStream(templateFile)) {
             Properties props = new Properties();
             props.load(fis);
@@ -581,5 +582,5 @@
             }
             Utils.updateSystemProperty("sun.awt.fontconfig", fontconfigFile.toString());
-        } catch (IOException ex) {
+        } catch (IOException | InvalidPathException ex) {
             Logging.error(ex);
         }
Index: trunk/src/org/openstreetmap/josm/tools/RightAndLefthandTraffic.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/RightAndLefthandTraffic.java	(revision 13203)
+++ trunk/src/org/openstreetmap/josm/tools/RightAndLefthandTraffic.java	(revision 13204)
@@ -3,6 +3,4 @@
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -11,4 +9,7 @@
 import java.io.Writer;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.InvalidPathException;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -154,5 +155,5 @@
         DataSet ds = optimizedWays.iterator().next().getDataSet();
         File file = new File(Config.getDirs().getCacheDirectory(true), "left-right-hand-traffic.osm");
-        try (Writer writer = new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8);
+        try (Writer writer = new OutputStreamWriter(Files.newOutputStream(file.toPath()), StandardCharsets.UTF_8);
              OsmWriter w = OsmWriterFactory.createOsmWriter(new PrintWriter(writer), false, ds.getVersion())
             ) {
@@ -166,8 +167,8 @@
 
     private static Collection<Way> loadOptimizedBoundaries() {
-        try (InputStream is = new FileInputStream(new File(
-                Config.getDirs().getCacheDirectory(false), "left-right-hand-traffic.osm"))) {
+        try (InputStream is = Files.newInputStream(Paths.get(
+                Config.getDirs().getCacheDirectory(false).getPath(), "left-right-hand-traffic.osm"))) {
            return OsmReader.parseDataSet(is, null).getWays();
-        } catch (IllegalDataException | IOException ex) {
+        } catch (IllegalDataException | IOException | InvalidPathException ex) {
             Logging.trace(ex);
             return Collections.emptyList();
