From 91a2943599b966b558f895e9c1d59aee14544587 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 17 Mar 2021 08:16:26 +0100 Subject: [PATCH 1/6] update to JDK 16 --- .github/workflows/build.yml | 2 +- .idea/misc.xml | 2 +- main/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a37c937a6..9e7c9ca9f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-java@v1 with: - java-version: 14 + java-version: 16 - uses: actions/cache@v1 with: path: ~/.m2/repository diff --git a/.idea/misc.xml b/.idea/misc.xml index eab8a318e..feca1b9ff 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,7 +8,7 @@ - + \ No newline at end of file diff --git a/main/pom.xml b/main/pom.xml index 957d1182f..1e48da8a7 100644 --- a/main/pom.xml +++ b/main/pom.xml @@ -22,7 +22,7 @@ UTF-8 - 14 + 16 1.9.14 From b23d2e4def9493aee0f1f8061d7b452909d6af84 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 17 Mar 2021 08:19:58 +0100 Subject: [PATCH 2/6] allow use of reflection in codacy coverage reporter --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9e7c9ca9f..773454e39 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,10 +28,10 @@ jobs: if: github.repository == 'cryptomator/cryptomator' run: | curl -o ~/codacy-coverage-reporter.jar https://repo.maven.apache.org/maven2/com/codacy/codacy-coverage-reporter/7.1.0/codacy-coverage-reporter-7.1.0-assembly.jar - $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/commons/target/site/jacoco/jacoco.xml --partial - $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/ui/target/site/jacoco/jacoco.xml --partial - $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/launcher/target/site/jacoco/jacoco.xml --partial - $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar final + $JAVA_HOME/bin/java --illegal-access=permit -jar ~/codacy-coverage-reporter.jar report -l Java -r main/commons/target/site/jacoco/jacoco.xml --partial + $JAVA_HOME/bin/java --illegal-access=permit -jar ~/codacy-coverage-reporter.jar report -l Java -r main/ui/target/site/jacoco/jacoco.xml --partial + $JAVA_HOME/bin/java --illegal-access=permit -jar ~/codacy-coverage-reporter.jar report -l Java -r main/launcher/target/site/jacoco/jacoco.xml --partial + $JAVA_HOME/bin/java --illegal-access=permit -jar ~/codacy-coverage-reporter.jar final env: CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }} - name: Assemble buildkit-linux.zip From f6283b2f7edd1326bc58f3fa9fcba9a1a9ea4d60 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 17 Mar 2021 09:12:54 +0100 Subject: [PATCH 3/6] using text blocks where applicable --- .../org/cryptomator/common/CommonsModule.java | 10 ++++++---- .../common/LicenseCheckerTest.java | 10 ++++++---- .../settings/SettingsJsonAdapterTest.java | 19 ++++++++++++------- .../recoverykey/RecoveryKeyFactoryTest.java | 16 ++++++++++------ 4 files changed, 34 insertions(+), 21 deletions(-) diff --git a/main/commons/src/main/java/org/cryptomator/common/CommonsModule.java b/main/commons/src/main/java/org/cryptomator/common/CommonsModule.java index ed278e1ab..2a0a42ecb 100644 --- a/main/commons/src/main/java/org/cryptomator/common/CommonsModule.java +++ b/main/commons/src/main/java/org/cryptomator/common/CommonsModule.java @@ -47,10 +47,12 @@ public abstract class CommonsModule { @Named("licensePublicKey") static String provideLicensePublicKey() { // in PEM format without the dash-escaped begin/end lines - return "MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQB7NfnqiZbg2KTmoflmZ71PbXru7oW" // - + "fmnV2yv3eDjlDfGruBrqz9TtXBZV/eYWt31xu1osIqaT12lKBvZ511aaAkIBeOEV" // - + "gwcBIlJr6kUw7NKzeJt7r2rrsOyQoOG2nWc/Of/NBqA3mIZRHk5Aq1YupFdD26QE" // - + "r0DzRyj4ixPIt38CQB8="; + return """ + MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQB7NfnqiZbg2KTmoflmZ71PbXru7oW\ + fmnV2yv3eDjlDfGruBrqz9TtXBZV/eYWt31xu1osIqaT12lKBvZ511aaAkIBeOEV\ + gwcBIlJr6kUw7NKzeJt7r2rrsOyQoOG2nWc/Of/NBqA3mIZRHk5Aq1YupFdD26QE\ + r0DzRyj4ixPIt38CQB8=\ + """; } @Provides diff --git a/main/commons/src/test/java/org/cryptomator/common/LicenseCheckerTest.java b/main/commons/src/test/java/org/cryptomator/common/LicenseCheckerTest.java index 6bb4befb4..066126ccf 100644 --- a/main/commons/src/test/java/org/cryptomator/common/LicenseCheckerTest.java +++ b/main/commons/src/test/java/org/cryptomator/common/LicenseCheckerTest.java @@ -9,10 +9,12 @@ import java.util.Optional; class LicenseCheckerTest { - private static final String PUBLIC_KEY = "MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBgc4HZz+/fBbC7lmEww0AO3NK9wVZ" // - + "PDZ0VEnsaUFLEYpTzb90nITtJUcPUbvOsdZIZ1Q8fnbquAYgxXL5UgHMoywAib47" // - + "6MkyyYgPk0BXZq3mq4zImTRNuaU9slj9TVJ3ScT3L1bXwVuPJDzpr5GOFpaj+WwM" // - + "Al8G7CqwoJOsW7Kddns="; + private static final String PUBLIC_KEY = """ + MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBgc4HZz+/fBbC7lmEww0AO3NK9wVZ\ + PDZ0VEnsaUFLEYpTzb90nITtJUcPUbvOsdZIZ1Q8fnbquAYgxXL5UgHMoywAib47\ + 6MkyyYgPk0BXZq3mq4zImTRNuaU9slj9TVJ3ScT3L1bXwVuPJDzpr5GOFpaj+WwM\ + Al8G7CqwoJOsW7Kddns=\ + """; private LicenseChecker licenseChecker; diff --git a/main/commons/src/test/java/org/cryptomator/common/settings/SettingsJsonAdapterTest.java b/main/commons/src/test/java/org/cryptomator/common/settings/SettingsJsonAdapterTest.java index 8d19a0d8d..a03eb1d57 100644 --- a/main/commons/src/test/java/org/cryptomator/common/settings/SettingsJsonAdapterTest.java +++ b/main/commons/src/test/java/org/cryptomator/common/settings/SettingsJsonAdapterTest.java @@ -21,13 +21,18 @@ public class SettingsJsonAdapterTest { @Test public void testDeserialize() throws IOException { - String vault1Json = "{\"id\": \"1\", \"path\": \"/vault1\", \"mountName\": \"vault1\", \"winDriveLetter\": \"X\"}"; - String vault2Json = "{\"id\": \"2\", \"path\": \"/vault2\", \"mountName\": \"vault2\", \"winDriveLetter\": \"Y\"}"; - String json = "{\"directories\": [" + vault1Json + "," + vault2Json + "]," // - + "\"checkForUpdatesEnabled\": true,"// - + "\"port\": 8080,"// - + "\"numTrayNotifications\": 42,"// - + "\"preferredVolumeImpl\": \"FUSE\"}"; + String json = """ + { + "directories": [ + {"id": "1", "path": "/vault1", "mountName": "vault1", "winDriveLetter": "X"}, + {"id": "2", "path": "/vault2", "mountName": "vault2", "winDriveLetter": "Y"} + ], + "checkForUpdatesEnabled": true, + "port": 8080, + "numTrayNotifications": 42, + "preferredVolumeImpl": "FUSE" + } + """; Settings settings = adapter.fromJson(json); diff --git a/main/ui/src/test/java/org/cryptomator/ui/recoverykey/RecoveryKeyFactoryTest.java b/main/ui/src/test/java/org/cryptomator/ui/recoverykey/RecoveryKeyFactoryTest.java index 6ca1fd891..3ea028bf2 100644 --- a/main/ui/src/test/java/org/cryptomator/ui/recoverykey/RecoveryKeyFactoryTest.java +++ b/main/ui/src/test/java/org/cryptomator/ui/recoverykey/RecoveryKeyFactoryTest.java @@ -48,18 +48,22 @@ class RecoveryKeyFactoryTest { @Test @DisplayName("validateRecoveryKey() with invalid checksum") public void testValidateValidateRecoveryKeyWithInvalidCrc() { - boolean result = inTest.validateRecoveryKey("pathway lift abuse plenty export texture gentleman landscape beyond ceiling around leaf cafe" // - + " charity border breakdown victory surely computer cat linger restrict infer crowd live computer true written amazed investor boot" // - + " depth left theory snow whereby terminal weekly reject happiness circuit partial cup wrong"); + boolean result = inTest.validateRecoveryKey(""" + pathway lift abuse plenty export texture gentleman landscape beyond ceiling around leaf cafe charity \ + border breakdown victory surely computer cat linger restrict infer crowd live computer true written amazed \ + investor boot depth left theory snow whereby terminal weekly reject happiness circuit partial cup wrong \ + """); Assertions.assertFalse(result); } @Test @DisplayName("validateRecoveryKey() with valid input") public void testValidateValidateRecoveryKeyWithValidKey() { - boolean result = inTest.validateRecoveryKey("pathway lift abuse plenty export texture gentleman landscape beyond ceiling around leaf cafe" // - + " charity border breakdown victory surely computer cat linger restrict infer crowd live computer true written amazed investor boot" // - + " depth left theory snow whereby terminal weekly reject happiness circuit partial cup ad"); + boolean result = inTest.validateRecoveryKey(""" + pathway lift abuse plenty export texture gentleman landscape beyond ceiling around leaf cafe charity \ + border breakdown victory surely computer cat linger restrict infer crowd live computer true written amazed \ + investor boot depth left theory snow whereby terminal weekly reject happiness circuit partial cup ad \ + """); Assertions.assertTrue(result); } From f73ae9759fa206c284284be5fd02d2b264938832 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 17 Mar 2021 09:16:44 +0100 Subject: [PATCH 4/6] use new Stream.toList() where applicable --- .../common/vaults/VaultListChangeListener.java | 4 ++-- .../common/vaults/VaultListManager.java | 2 +- .../org/cryptomator/common/EnvironmentTest.java | 14 +++++++------- .../launcher/FileOpenRequestHandler.java | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListChangeListener.java b/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListChangeListener.java index a7e422115..3fd6f4e23 100644 --- a/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListChangeListener.java +++ b/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListChangeListener.java @@ -22,10 +22,10 @@ class VaultListChangeListener implements ListChangeListener { public void onChanged(Change c) { while (c.next()) { if (c.wasAdded()) { - List addedSettings = c.getAddedSubList().stream().map(Vault::getVaultSettings).collect(Collectors.toList()); + List addedSettings = c.getAddedSubList().stream().map(Vault::getVaultSettings).toList(); vaultSettingsList.addAll(c.getFrom(), addedSettings); } else if (c.wasRemoved()) { - List removedSettings = c.getRemoved().stream().map(Vault::getVaultSettings).collect(Collectors.toList()); + List removedSettings = c.getRemoved().stream().map(Vault::getVaultSettings).toList(); vaultSettingsList.removeAll(removedSettings); } } diff --git a/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListManager.java b/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListManager.java index 984008ba9..b7c10a4d4 100644 --- a/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListManager.java +++ b/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListManager.java @@ -79,7 +79,7 @@ public class VaultListManager { } private void addAll(Collection vaultSettings) { - Collection vaults = vaultSettings.stream().map(this::create).collect(Collectors.toList()); + Collection vaults = vaultSettings.stream().map(this::create).toList(); vaultList.addAll(vaults); } diff --git a/main/commons/src/test/java/org/cryptomator/common/EnvironmentTest.java b/main/commons/src/test/java/org/cryptomator/common/EnvironmentTest.java index 11bfa4e2e..b68d4a631 100644 --- a/main/commons/src/test/java/org/cryptomator/common/EnvironmentTest.java +++ b/main/commons/src/test/java/org/cryptomator/common/EnvironmentTest.java @@ -32,7 +32,7 @@ class EnvironmentTest { public void testSettingsPath() { System.setProperty("cryptomator.settingsPath", "~/.config/Cryptomator/settings.json:~/.Cryptomator/settings.json"); - List result = env.getSettingsPath().collect(Collectors.toList()); + List result = env.getSettingsPath().toList(); MatcherAssert.assertThat(result, Matchers.hasSize(2)); MatcherAssert.assertThat(result, Matchers.contains(Paths.get("/home/testuser/.config/Cryptomator/settings.json"), // Paths.get("/home/testuser/.Cryptomator/settings.json"))); @@ -43,7 +43,7 @@ class EnvironmentTest { public void testIpcPortPath() { System.setProperty("cryptomator.ipcPortPath", "~/.config/Cryptomator/ipcPort.bin:~/.Cryptomator/ipcPort.bin"); - List result = env.getIpcPortPath().collect(Collectors.toList()); + List result = env.getIpcPortPath().toList(); MatcherAssert.assertThat(result, Matchers.hasSize(2)); MatcherAssert.assertThat(result, Matchers.contains(Paths.get("/home/testuser/.config/Cryptomator/ipcPort.bin"), // Paths.get("/home/testuser/.Cryptomator/ipcPort.bin"))); @@ -54,7 +54,7 @@ class EnvironmentTest { public void testKeychainPath() { System.setProperty("cryptomator.keychainPath", "~/AppData/Roaming/Cryptomator/keychain.json"); - List result = env.getKeychainPath().collect(Collectors.toList()); + List result = env.getKeychainPath().toList(); MatcherAssert.assertThat(result, Matchers.hasSize(1)); MatcherAssert.assertThat(result, Matchers.contains(Paths.get("/home/testuser/AppData/Roaming/Cryptomator/keychain.json"))); } @@ -88,7 +88,7 @@ class EnvironmentTest { @DisplayName("test.path.property=") public void testEmptyList() { System.setProperty("test.path.property", ""); - List result = env.getPaths("test.path.property").collect(Collectors.toList()); + List result = env.getPaths("test.path.property").toList(); MatcherAssert.assertThat(result, Matchers.hasSize(0)); } @@ -97,7 +97,7 @@ class EnvironmentTest { @DisplayName("test.path.property=/foo/bar/test") public void testSingleAbsolutePath() { System.setProperty("test.path.property", "/foo/bar/test"); - List result = env.getPaths("test.path.property").collect(Collectors.toList()); + List result = env.getPaths("test.path.property").toList(); MatcherAssert.assertThat(result, Matchers.hasSize(1)); MatcherAssert.assertThat(result, Matchers.hasItem(Paths.get("/foo/bar/test"))); @@ -107,7 +107,7 @@ class EnvironmentTest { @DisplayName("test.path.property=~/test") public void testSingleHomeRelativePath() { System.setProperty("test.path.property", "~/test"); - List result = env.getPaths("test.path.property").collect(Collectors.toList()); + List result = env.getPaths("test.path.property").toList(); MatcherAssert.assertThat(result, Matchers.hasSize(1)); MatcherAssert.assertThat(result, Matchers.hasItem(Paths.get("/home/testuser/test"))); @@ -117,7 +117,7 @@ class EnvironmentTest { @DisplayName("test.path.property=~/test:~/test2:/foo/bar/test") public void testMultiplePaths() { System.setProperty("test.path.property", "~/test:~/test2:/foo/bar/test"); - List result = env.getPaths("test.path.property").collect(Collectors.toList()); + List result = env.getPaths("test.path.property").toList(); MatcherAssert.assertThat(result, Matchers.hasSize(3)); MatcherAssert.assertThat(result, Matchers.contains(Paths.get("/home/testuser/test"), // diff --git a/main/launcher/src/main/java/org/cryptomator/launcher/FileOpenRequestHandler.java b/main/launcher/src/main/java/org/cryptomator/launcher/FileOpenRequestHandler.java index 8c9ac2f9f..9d1e3144d 100644 --- a/main/launcher/src/main/java/org/cryptomator/launcher/FileOpenRequestHandler.java +++ b/main/launcher/src/main/java/org/cryptomator/launcher/FileOpenRequestHandler.java @@ -41,7 +41,7 @@ class FileOpenRequestHandler { } private void openFiles(OpenFilesEvent evt) { - Collection pathsToOpen = evt.getFiles().stream().map(File::toPath).collect(Collectors.toList()); + Collection pathsToOpen = evt.getFiles().stream().map(File::toPath).toList(); AppLaunchEvent launchEvent = new AppLaunchEvent(AppLaunchEvent.EventType.OPEN_FILE, pathsToOpen); tryToEnqueueFileOpenRequest(launchEvent); } @@ -59,7 +59,7 @@ class FileOpenRequestHandler { LOG.trace("Argument not a valid path: {}", str); return null; } - }).filter(Objects::nonNull).collect(Collectors.toList()); + }).filter(Objects::nonNull).toList(); if (!pathsToOpen.isEmpty()) { AppLaunchEvent launchEvent = new AppLaunchEvent(AppLaunchEvent.EventType.OPEN_FILE, pathsToOpen); tryToEnqueueFileOpenRequest(launchEvent); From 4e075ab0ca080e4a6f0d6fc45163517f47704595 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 17 Mar 2021 09:22:16 +0100 Subject: [PATCH 5/6] using pattern-matching instanceof where applicable --- .../src/main/java/org/cryptomator/common/LicenseChecker.java | 4 ++-- .../java/org/cryptomator/common/settings/VaultSettings.java | 3 +-- .../src/main/java/org/cryptomator/common/vaults/Vault.java | 3 +-- .../src/main/java/org/cryptomator/logging/LoggerModule.java | 4 ++-- .../java/org/cryptomator/ui/common/DefaultSceneFactory.java | 4 ++-- .../main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java | 4 ++-- 6 files changed, 10 insertions(+), 12 deletions(-) diff --git a/main/commons/src/main/java/org/cryptomator/common/LicenseChecker.java b/main/commons/src/main/java/org/cryptomator/common/LicenseChecker.java index 93f16f755..38bf8e191 100644 --- a/main/commons/src/main/java/org/cryptomator/common/LicenseChecker.java +++ b/main/commons/src/main/java/org/cryptomator/common/LicenseChecker.java @@ -33,8 +33,8 @@ class LicenseChecker { try { byte[] keyBytes = BaseEncoding.base64().decode(pemEncodedPublicKey); PublicKey key = KeyFactory.getInstance("EC").generatePublic(new X509EncodedKeySpec(keyBytes)); - if (key instanceof ECPublicKey) { - return (ECPublicKey) key; + if (key instanceof ECPublicKey k) { + return k; } else { throw new IllegalStateException("Key not an EC public key."); } diff --git a/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java b/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java index 7de22753a..b273bb642 100644 --- a/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java +++ b/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java @@ -173,8 +173,7 @@ public class VaultSettings { @Override public boolean equals(Object obj) { - if (obj instanceof VaultSettings && obj.getClass().equals(this.getClass())) { - VaultSettings other = (VaultSettings) obj; + if (obj instanceof VaultSettings other && obj.getClass().equals(this.getClass())) { return Objects.equals(this.id, other.id); } else { return false; diff --git a/main/commons/src/main/java/org/cryptomator/common/vaults/Vault.java b/main/commons/src/main/java/org/cryptomator/common/vaults/Vault.java index ae1f6aac6..98a6cf21b 100644 --- a/main/commons/src/main/java/org/cryptomator/common/vaults/Vault.java +++ b/main/commons/src/main/java/org/cryptomator/common/vaults/Vault.java @@ -355,8 +355,7 @@ public class Vault { @Override public boolean equals(Object obj) { - if (obj instanceof Vault && obj.getClass().equals(this.getClass())) { - final Vault other = (Vault) obj; + if (obj instanceof Vault other && obj.getClass().equals(this.getClass())) { return Objects.equals(this.vaultSettings, other.vaultSettings); } else { return false; diff --git a/main/launcher/src/main/java/org/cryptomator/logging/LoggerModule.java b/main/launcher/src/main/java/org/cryptomator/logging/LoggerModule.java index ba556933e..0b24e0e24 100644 --- a/main/launcher/src/main/java/org/cryptomator/logging/LoggerModule.java +++ b/main/launcher/src/main/java/org/cryptomator/logging/LoggerModule.java @@ -47,8 +47,8 @@ public class LoggerModule { @Singleton static LoggerContext provideLoggerContext() { ILoggerFactory loggerFactory = LoggerFactory.getILoggerFactory(); - if (loggerFactory instanceof LoggerContext) { - return (LoggerContext) loggerFactory; + if (loggerFactory instanceof LoggerContext context) { + return context; } else { throw new IllegalStateException("SLF4J not bound to Logback."); } diff --git a/main/ui/src/main/java/org/cryptomator/ui/common/DefaultSceneFactory.java b/main/ui/src/main/java/org/cryptomator/ui/common/DefaultSceneFactory.java index ad6056c44..7f6daa44d 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/common/DefaultSceneFactory.java +++ b/main/ui/src/main/java/org/cryptomator/ui/common/DefaultSceneFactory.java @@ -42,8 +42,8 @@ public class DefaultSceneFactory implements Function { protected void configureScene(Scene scene) { scene.windowProperty().addListener(observable -> { Window window = scene.getWindow(); - if (window instanceof Stage) { - setupDefaultAccelerators(scene, (Stage) window); + if (window instanceof Stage s) { + setupDefaultAccelerators(scene, s); } }); } diff --git a/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java b/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java index 12f6d4dc6..c1b5fbd45 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java +++ b/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java @@ -76,8 +76,8 @@ public class UnlockWorkflow extends Task { setOnFailed(event -> { Throwable throwable = event.getSource().getException(); - if (throwable instanceof InvalidMountPointException) { - handleInvalidMountPoint((InvalidMountPointException) throwable); + if (throwable instanceof InvalidMountPointException e) { + handleInvalidMountPoint(e); } else { handleGenericError(throwable); } From 4c10ab764a72cb4d8a50e2c48997051be5e32344 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 17 Mar 2021 09:25:43 +0100 Subject: [PATCH 6/6] updated README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e07ab285f..63c72c421 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ For more information on the security details visit [cryptomator.org](https://doc ### Dependencies -* JDK 14 (e.g. adoptopenjdk) +* JDK 16 (e.g. adoptopenjdk) * Maven 3 * Optional: OS-dependent build tools for native packaging (see [Windows](https://github.com/cryptomator/cryptomator-win), [OS X](https://github.com/cryptomator/cryptomator-osx), [Linux](https://github.com/cryptomator/builder-containers))