瀏覽代碼

method loadVaultConfig() throws exception instead of returning optional (#1661)

Armin Schrenk 3 年之前
父節點
當前提交
1ca2e029dc

+ 4 - 8
main/commons/src/main/java/org/cryptomator/common/vaults/Vault.java

@@ -109,7 +109,7 @@ public class Vault {
 		} else if(vaultSettings.maxCleartextFilenameLength().get() == -1) {
 			LOG.debug("Determining cleartext filename length limitations...");
 			var checker = new FileSystemCapabilityChecker();
-			int shorteningThreshold = getUnverifiedVaultConfig().orElseThrow().allegedShorteningThreshold();
+			int shorteningThreshold = getUnverifiedVaultConfig().allegedShorteningThreshold();
 			int ciphertextLimit = checker.determineSupportedCiphertextFileNameLength(getPath());
 			if (ciphertextLimit < shorteningThreshold) {
 				int cleartextLimit = checker.determineSupportedCleartextFileNameLength(getPath());
@@ -327,14 +327,10 @@ public class Vault {
 		return stats;
 	}
 
-	public Optional<UnverifiedVaultConfig> getUnverifiedVaultConfig() {
+	public UnverifiedVaultConfig getUnverifiedVaultConfig() throws IOException {
 		Path configPath = getPath().resolve(org.cryptomator.common.Constants.VAULTCONFIG_FILENAME);
-		try {
-			String token = Files.readString(configPath, StandardCharsets.US_ASCII);
-			return Optional.of(VaultConfig.decode(token));
-		} catch (IOException e) {
-			return Optional.empty();
-		}
+		String token = Files.readString(configPath, StandardCharsets.US_ASCII);
+		return VaultConfig.decode(token);
 	}
 
 	public Observable[] observables() {

+ 6 - 12
main/ui/src/main/java/org/cryptomator/ui/keyloading/KeyLoadingModule.java

@@ -10,6 +10,7 @@ import org.cryptomator.ui.common.FxmlLoaderFactory;
 import org.cryptomator.ui.keyloading.masterkeyfile.MasterkeyFileLoadingModule;
 
 import javax.inject.Provider;
+import java.io.IOException;
 import java.net.URI;
 import java.util.Map;
 import java.util.Optional;
@@ -28,20 +29,13 @@ abstract class KeyLoadingModule {
 	@Provides
 	@KeyLoading
 	@KeyLoadingScoped
-	static Optional<URI> provideKeyId(@KeyLoading Vault vault) {
-		return vault.getUnverifiedVaultConfig().map(UnverifiedVaultConfig::getKeyId);
-	}
-
-	@Provides
-	@KeyLoading
-	@KeyLoadingScoped
-	static KeyLoadingStrategy provideKeyLoaderProvider(@KeyLoading Optional<URI> keyId, Map<String, Provider<KeyLoadingStrategy>> strategies) {
-		if (keyId.isEmpty()) {
-			return KeyLoadingStrategy.failed(new IllegalArgumentException("No key id provided"));
-		} else {
-			String scheme = keyId.get().getScheme();
+	static KeyLoadingStrategy provideKeyLoaderProvider(@KeyLoading Vault vault, Map<String, Provider<KeyLoadingStrategy>> strategies) {
+		try {
+			String scheme = vault.getUnverifiedVaultConfig().getKeyId().getScheme();
 			var fallback = KeyLoadingStrategy.failed(new IllegalArgumentException("Unsupported key id " + scheme));
 			return strategies.getOrDefault(scheme, () -> fallback).get();
+		} catch (IOException e) {
+			return KeyLoadingStrategy.failed(e);
 		}
 	}