Avoid exception if the symlink already exists

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/818e88d6
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/818e88d6
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/818e88d6

Branch: refs/heads/master
Commit: 818e88d6dfad6aa7cb84f6a70bacf98ec0367338
Parents: 61f2436
Author: Jean-Baptiste Onofré <[email protected]>
Authored: Fri Jun 19 14:47:38 2015 +0200
Committer: Jean-Baptiste Onofré <[email protected]>
Committed: Fri Jun 19 14:47:38 2015 +0200

----------------------------------------------------------------------
 .../org/apache/karaf/profile/assembly/Builder.java    | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/818e88d6/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
----------------------------------------------------------------------
diff --git 
a/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java 
b/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
index ea5c6d7..53eb178 100644
--- a/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
+++ b/profile/src/main/java/org/apache/karaf/profile/assembly/Builder.java
@@ -24,15 +24,7 @@ import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URI;
 import java.nio.charset.StandardCharsets;
-import java.nio.file.FileSystem;
-import java.nio.file.FileSystemNotFoundException;
-import java.nio.file.FileSystems;
-import java.nio.file.Files;
-import java.nio.file.OpenOption;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
-import java.nio.file.StandardOpenOption;
+import java.nio.file.*;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -623,7 +615,9 @@ public class Builder {
                             Files.createDirectories(sysOutput.getParent());
                             Files.copy(input, sysOutput, 
StandardCopyOption.REPLACE_EXISTING);
                             Path libOutput = 
homeDirectory.resolve(path).resolve(name);
-                            Files.createSymbolicLink(libOutput, 
libOutput.getParent().relativize(sysOutput));
+                            if (Files.notExists(libOutput, 
LinkOption.NOFOLLOW_LINKS)) {
+                                Files.createSymbolicLink(libOutput, 
libOutput.getParent().relativize(sysOutput));
+                            }
                         } else {
                             Path output = 
homeDirectory.resolve(path).resolve(name);
                             Files.copy(input, output, 
StandardCopyOption.REPLACE_EXISTING);

Reply via email to