diff options
-rw-r--r-- | pf4j/src/main/java/org/pf4j/util/FileUtils.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/pf4j/src/main/java/org/pf4j/util/FileUtils.java b/pf4j/src/main/java/org/pf4j/util/FileUtils.java index 38fd309..a05367c 100644 --- a/pf4j/src/main/java/org/pf4j/util/FileUtils.java +++ b/pf4j/src/main/java/org/pf4j/util/FileUtils.java @@ -228,9 +228,9 @@ public class FileUtils { } public static Path getPath(URI uri, String first, String... more) throws IOException { - FileSystem fileSystem = FileSystems.newFileSystem(uri, Collections.<String, String>emptyMap()); - - return fileSystem.getPath(first, more); + try (FileSystem fileSystem = getFileSystem(uri)) { + return fileSystem.getPath(first, more); + } } public static Path findFile(Path directoryPath, String fileName) { @@ -253,4 +253,13 @@ public class FileUtils { return null; } + private static FileSystem getFileSystem(URI uri) throws IOException { + FileSystem fileSystem = FileSystems.getFileSystem(uri); + if (fileSystem != null) { + return fileSystem; + } + + return FileSystems.newFileSystem(uri, Collections.<String, String>emptyMap()); + } + } |