diff --git a/src/main/java/org/cryptomator/ipc/Client.java b/src/main/java/org/cryptomator/ipc/Client.java index ab20cf842..bdeabac2f 100644 --- a/src/main/java/org/cryptomator/ipc/Client.java +++ b/src/main/java/org/cryptomator/ipc/Client.java @@ -22,8 +22,6 @@ class Client implements IpcCommunicator { } public static Client create(Path socketPath) throws IOException { - // fail with NoSuchFileException early to prevent implicit creation of socket on Windows: - socketPath.getFileSystem().provider().checkAccess(socketPath); var address = UnixDomainSocketAddress.of(socketPath); var socketChannel = SocketChannel.open(address); LOG.info("Connected to IPC server on UNIX socket {}", socketPath); diff --git a/src/main/java/org/cryptomator/ipc/IpcCommunicator.java b/src/main/java/org/cryptomator/ipc/IpcCommunicator.java index 8f34457a5..2679ac457 100644 --- a/src/main/java/org/cryptomator/ipc/IpcCommunicator.java +++ b/src/main/java/org/cryptomator/ipc/IpcCommunicator.java @@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory; import java.io.Closeable; import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.concurrent.Executor; @@ -31,7 +32,9 @@ public interface IpcCommunicator extends Closeable { Preconditions.checkArgument(socketPaths.iterator().hasNext(), "socketPaths must contain at least one element"); for (var p : socketPaths) { try { - return Client.create(p); + if (Files.exists(p)) { + return Client.create(p); + } } catch (IOException e) { // attempt next socket path }