diff --git a/src/main/java/org/cryptomator/common/vaults/Vault.java b/src/main/java/org/cryptomator/common/vaults/Vault.java index afe5380c1..d617a5db3 100644 --- a/src/main/java/org/cryptomator/common/vaults/Vault.java +++ b/src/main/java/org/cryptomator/common/vaults/Vault.java @@ -10,7 +10,6 @@ package org.cryptomator.common.vaults; import org.apache.commons.lang3.SystemUtils; import org.cryptomator.common.Constants; -import org.cryptomator.common.ObservableUtil; import org.cryptomator.common.mount.ActualMountService; import org.cryptomator.common.mount.FuseRestartRequiredException; import org.cryptomator.common.mount.Mounter; @@ -83,16 +82,16 @@ public class Vault { private final AtomicReference mountHandle = new AtomicReference<>(null); @Inject - Vault(Settings settings, - VaultSettings vaultSettings, - VaultConfigCache configCache, - AtomicReference cryptoFileSystem, - List mountProviders, - VaultState state, - @Named("lastKnownException") ObjectProperty lastKnownException, - VaultStats stats, - Mounter mounter, - @Named("vaultMountService") ObservableValue actualMountService, + Vault(Settings settings, // + VaultSettings vaultSettings, // + VaultConfigCache configCache, // + AtomicReference cryptoFileSystem, // + List mountProviders, // + VaultState state, // + @Named("lastKnownException") ObjectProperty lastKnownException, // + VaultStats stats, // + Mounter mounter, // + @Named("vaultMountService") ObservableValue actualMountService, // @Named("FUPFMS") AtomicReference firstUsedProblematicFuseMountService) { this.settings = settings; this.vaultSettings = vaultSettings; @@ -167,13 +166,12 @@ public class Vault { throw new IllegalStateException("Already unlocked."); } var fallbackProvider = mountProviders.stream().findFirst().orElse(null); - var defMntServ = ObservableUtil.mapWithDefault(settings.mountService, serviceName -> mountProviders.stream().filter(s -> s.getClass().getName().equals(serviceName)).findFirst().orElse(fallbackProvider), fallbackProvider).getValue(); - var selMntServ = ObservableUtil.mapWithDefault(vaultSettings.mountService, serviceName -> mountProviders.stream().filter(s -> s.getClass().getName().equals(serviceName)).findFirst().orElse(defMntServ), defMntServ); - var fuseRestartRequired = selMntServ.map(s -> // - firstUsedProblematicFuseMountService.get() != null // - && VaultModule.isProblematicFuseService(s) // - && !firstUsedProblematicFuseMountService.get().equals(s)).getValue(); - if(fuseRestartRequired){ + var defMntServ = mountProviders.stream().filter(s -> s.getClass().getName().equals(settings.mountService.getValue())).findFirst().orElse(fallbackProvider); + var selMntServ = mountProviders.stream().filter(s -> s.getClass().getName().equals(vaultSettings.mountService.getValue())).findFirst().orElse(defMntServ); + var fuseRestartRequired = firstUsedProblematicFuseMountService.get() != null // + && VaultModule.isProblematicFuseService(selMntServ) // + && !firstUsedProblematicFuseMountService.get().equals(selMntServ); + if (fuseRestartRequired) { throw new FuseRestartRequiredException("fuseRestartRequired"); }