summaryrefslogtreecommitdiffstats
path: root/jdisc_http_service
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-01-27 11:21:33 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-01-27 11:21:33 +0100
commit2079297d6060840e59c98fb377623473fc1108b0 (patch)
tree77cf1c187c7dda588fc1881702f274e7b4604f58 /jdisc_http_service
parentfb15d369b4c49d108eeb78279b5ac3c577e56e5b (diff)
Create symbolic link using Files API instead of 'ln'
Diffstat (limited to 'jdisc_http_service')
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/container/logging/LogFileHandler.java17
1 files changed, 5 insertions, 12 deletions
diff --git a/jdisc_http_service/src/main/java/com/yahoo/container/logging/LogFileHandler.java b/jdisc_http_service/src/main/java/com/yahoo/container/logging/LogFileHandler.java
index 8c04ded0afe..a61754b0a19 100644
--- a/jdisc_http_service/src/main/java/com/yahoo/container/logging/LogFileHandler.java
+++ b/jdisc_http_service/src/main/java/com/yahoo/container/logging/LogFileHandler.java
@@ -6,7 +6,6 @@ import com.yahoo.concurrent.ThreadFactoryFactory;
import com.yahoo.io.NativeIO;
import com.yahoo.log.LogFileDb;
import com.yahoo.protect.Process;
-import com.yahoo.system.ProcessExecuter;
import com.yahoo.yolean.Exceptions;
import java.io.BufferedOutputStream;
@@ -21,7 +20,6 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Optional;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.CountDownLatch;
@@ -439,18 +437,13 @@ class LogFileHandler <LOGTYPE> {
*/
private void createSymlinkToCurrentFile() {
if (symlinkName == null) return;
- File f = new File(fileName);
- File f2 = new File(f.getParent(), symlinkName);
- String[] cmd = new String[]{"/bin/ln", "-sf", f.getName(), f2.getPath()};
+ Path target = Paths.get(fileName);
+ Path link = target.resolveSibling(symlinkName);
try {
- int retval = new ProcessExecuter().exec(cmd).getFirst();
- // Detonator pattern: Think of all the fun we can have if ln isn't what we
- // think it is, if it doesn't return, etc, etc
- if (retval != 0) {
- logger.warning("Command '" + Arrays.toString(cmd) + "' + failed with exitcode=" + retval);
- }
+ Files.deleteIfExists(link);
+ Files.createSymbolicLink(link, target.getFileName());
} catch (IOException e) {
- logger.warning("Got '" + e + "' while doing'" + Arrays.toString(cmd) + "'.");
+ logger.log(Level.WARNING, "Failed to create symbolic link to current log file: " + e.getMessage(), e);
}
}