diff --git a/main/pom.xml b/main/pom.xml index 02223a389..60ef7e7e9 100644 --- a/main/pom.xml +++ b/main/pom.xml @@ -25,7 +25,7 @@ 16 - 2.1.0-beta1 + 2.1.0-beta2 1.0.0-beta2 1.0.0-beta2 1.0.0-beta2 diff --git a/main/ui/src/main/java/org/cryptomator/ui/health/CheckController.java b/main/ui/src/main/java/org/cryptomator/ui/health/CheckController.java index 77b137494..28b7a4915 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/health/CheckController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/health/CheckController.java @@ -16,6 +16,7 @@ import java.security.SecureRandom; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.concurrent.ExecutorService; import java.util.concurrent.atomic.AtomicReference; @HealthCheckScoped @@ -28,28 +29,29 @@ public class CheckController implements FxController { private final Masterkey masterkey; private final VaultConfig vaultConfig; private final SecureRandom csprng; + private final ExecutorService executor; @Inject - public CheckController(@HealthCheckWindow Vault vault, @HealthCheckWindow Stage window, AtomicReference masterkeyRef, AtomicReference vaultConfigRef, SecureRandom csprng) { + public CheckController(@HealthCheckWindow Vault vault, @HealthCheckWindow Stage window, AtomicReference masterkeyRef, AtomicReference vaultConfigRef, SecureRandom csprng, ExecutorService executor) { this.vault = vault; this.window = window; this.masterkey = Objects.requireNonNull(masterkeyRef.get()); this.vaultConfig = Objects.requireNonNull(vaultConfigRef.get()); this.csprng = csprng; + this.executor = executor; } @FXML public void runCheck() { - // TODO run in background task... try (var cryptor = vaultConfig.getCipherCombo().getCryptorProvider(csprng).withKey(masterkey)) { - List results = new ArrayList<>(); - HealthCheck.allChecks().forEach(c -> { - LOG.info("Running check {}...", c.identifier()); - results.addAll(c.check(vault.getPath(), vaultConfig, masterkey, cryptor)); - }); - results.forEach(r -> { - LOG.info("Result: {}", r); - }); + HealthCheck.allChecks().stream() + .peek(check -> { + LOG.info("Running check: {}", check.identifier()); + }) + .flatMap(check -> check.check(vault.getPath(), vaultConfig, masterkey, cryptor, executor)) + .forEach(result -> { + LOG.info("Result: {}", result); + }); } }