From 71b876b32d39bca6dfa4b6c309392422022b06c7 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Mon, 18 Jul 2022 10:42:00 +0200 Subject: [PATCH] Fixes #1900 --- .../java/org/cryptomator/ui/fxapp/AutoUnlocker.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/cryptomator/ui/fxapp/AutoUnlocker.java b/src/main/java/org/cryptomator/ui/fxapp/AutoUnlocker.java index 9d6a73fa0..973d919fc 100644 --- a/src/main/java/org/cryptomator/ui/fxapp/AutoUnlocker.java +++ b/src/main/java/org/cryptomator/ui/fxapp/AutoUnlocker.java @@ -4,6 +4,8 @@ import org.cryptomator.common.vaults.Vault; import javax.inject.Inject; import javafx.collections.ObservableList; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletionStage; @FxApplicationScoped public class AutoUnlocker { @@ -18,9 +20,11 @@ public class AutoUnlocker { } public void unlock() { - vaults.stream().filter(Vault::isLocked).filter(v -> v.getVaultSettings().unlockAfterStartup().get()).forEach(v -> { - appWindows.startUnlockWorkflow(v, null); - }); + vaults.stream().filter(Vault::isLocked) // + .filter(v -> v.getVaultSettings().unlockAfterStartup().get()) // + .>reduce(CompletableFuture.completedFuture(null), // + (unlockFlow, v) -> unlockFlow.handle((voit, ex) -> appWindows.startUnlockWorkflow(v, null)).thenCompose(stage -> stage), //we don't care here about the exception, logged elsewhere + (unlockChain1, unlockChain2) -> unlockChain1.handle((voit, ex) -> unlockChain2).thenCompose(stage -> stage)); } }