aboutsummaryrefslogtreecommitdiffstats
path: root/pf4j
diff options
context:
space:
mode:
authorDecebal Suiu <decebal.suiu@gmail.com>2018-07-09 20:11:13 +0300
committerDecebal Suiu <decebal.suiu@gmail.com>2018-07-09 20:11:13 +0300
commitbb88abaea256dd0bb16513645cae734e77a6859b (patch)
tree90d141c8de81c8244ce0d2729e5022a1f326ddd8 /pf4j
parent5587adb63ae7a51397196f28d3a97d579b04542a (diff)
downloadpf4j-bb88abaea256dd0bb16513645cae734e77a6859b.tar.gz
pf4j-bb88abaea256dd0bb16513645cae734e77a6859b.zip
Prevent FileSystemAlreadyExistsException (#229)
Diffstat (limited to 'pf4j')
-rw-r--r--pf4j/src/main/java/org/pf4j/util/FileUtils.java15
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());
+ }
+
}