From d5b8996a393b53c700ec161d55a607a9ce1da47f Mon Sep 17 00:00:00 2001 From: JaniruTEC <52893617+JaniruTEC@users.noreply.github.com> Date: Fri, 11 Sep 2020 22:23:48 +0200 Subject: [PATCH] Fixed violation of method contract See: https://github.com/cryptomator/cryptomator/pull/1307#discussion_r472857043 --- .../common/mountpoint/TemporaryMountPointChooser.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/main/commons/src/main/java/org/cryptomator/common/mountpoint/TemporaryMountPointChooser.java b/main/commons/src/main/java/org/cryptomator/common/mountpoint/TemporaryMountPointChooser.java index bd6dcde43..501c7e8f1 100644 --- a/main/commons/src/main/java/org/cryptomator/common/mountpoint/TemporaryMountPointChooser.java +++ b/main/commons/src/main/java/org/cryptomator/common/mountpoint/TemporaryMountPointChooser.java @@ -41,17 +41,19 @@ public class TemporaryMountPointChooser implements MountPointChooser { @Override public Optional chooseMountPoint() { - //Shouldn't throw, but let's keep #orElseThrow in case we made a mistake and the check in #isApplicable failed - Path parent = this.environment.getMountPointsDir().orElseThrow(); + return this.environment.getMountPointsDir().map(this::choose); + } + + private Path choose(Path parent) { String basename = this.vaultSettings.mountName().get(); for (int i = 0; i < MAX_TMPMOUNTPOINT_CREATION_RETRIES; i++) { Path mountPoint = parent.resolve(basename + "_" + i); if (Files.notExists(mountPoint)) { - return Optional.of(mountPoint); + return mountPoint; } } LOG.error("Failed to find feasible mountpoint at {}{}{}_x. Giving up after {} attempts.", parent, File.separator, basename, MAX_TMPMOUNTPOINT_CREATION_RETRIES); - return Optional.empty(); + return null; } @Override