diff --git a/main/commons/src/main/java/org/cryptomator/common/mountpoint/MacVolumeMountChooser.java b/main/commons/src/main/java/org/cryptomator/common/mountpoint/MacVolumeMountChooser.java index d6ebb4da5..3a017273f 100644 --- a/main/commons/src/main/java/org/cryptomator/common/mountpoint/MacVolumeMountChooser.java +++ b/main/commons/src/main/java/org/cryptomator/common/mountpoint/MacVolumeMountChooser.java @@ -31,26 +31,30 @@ class MacVolumeMountChooser implements MountPointChooser { @Override public Optional chooseMountPoint(Volume caller) { + return Optional.of(VOLUME_PATH).map(this::choose); + } + + private Path choose(Path parent) { String basename = this.vaultSettings.mountName().get(); - // regular - Path mountPoint = VOLUME_PATH.resolve(basename); + //regular + Path mountPoint = parent.resolve(basename); if (Files.notExists(mountPoint)) { - return Optional.of(mountPoint); + return mountPoint; } - // with id - mountPoint = VOLUME_PATH.resolve(basename + " (" + vaultSettings.getId() + ")"); + //with id + mountPoint = parent.resolve(basename + " (" + vaultSettings.getId() + ")"); if (Files.notExists(mountPoint)) { - return Optional.of(mountPoint); + return mountPoint; } - // with id and count + //with id and count for (int i = 1; i < MAX_MOUNTPOINT_CREATION_RETRIES; i++) { - mountPoint = VOLUME_PATH.resolve(basename + "_(" + vaultSettings.getId() + ")_" + i); + mountPoint = parent.resolve(basename + "_(" + vaultSettings.getId() + ")_" + i); if (Files.notExists(mountPoint)) { - return Optional.of(mountPoint); + return mountPoint; } } LOG.error("Failed to find feasible mountpoint at /Volumes/{}_x. Giving up after {} attempts.", basename, MAX_MOUNTPOINT_CREATION_RETRIES); - return Optional.empty(); + return null; } @Override