mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-04-20 01:26:52 -04:00
Refactored multiple classes
Refactored UnlockWorkflow, CustomMountPointChooser, DokanyVolume and UnlockInvalidMountPointController Changed UnlockWorkflow#handleGenericError() to accept Throwables Added check for parent to CustomMountPointChooser (when using FUSE on Win) Removed legacy constant from DokanyVolume Added asserts to UnlockInvalidMountPointController and UnlockWorkflow
This commit is contained in:
@@ -46,6 +46,10 @@ public class CustomMountPointChooser implements MountPointChooser {
|
||||
//This the case on Windows when using FUSE
|
||||
//See https://github.com/billziss-gh/winfsp/issues/320
|
||||
|
||||
Path parent = mountPoint.getParent();
|
||||
if (!Files.isDirectory(parent)) {
|
||||
throw wrapAsIMPE(new NotDirectoryException(parent.toString()));
|
||||
}
|
||||
//We must use #notExists() here because notExists =/= !exists (see docs)
|
||||
if (!Files.notExists(mountPoint, LinkOption.NOFOLLOW_LINKS)) {
|
||||
//File exists OR can't be determined
|
||||
|
||||
@@ -22,7 +22,6 @@ import java.util.concurrent.ExecutorService;
|
||||
public class DokanyVolume implements Volume {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(DokanyVolume.class);
|
||||
private static final int MAX_TMPMOUNTPOINT_CREATION_RETRIES = 10;
|
||||
|
||||
private static final String FS_TYPE_NAME = "Cryptomator File System";
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ public class UnlockInvalidMountPointController implements FxController {
|
||||
public boolean getMustExist() {
|
||||
MountPointRequirement requirement = vault.getMountPointRequirement();
|
||||
assert requirement != MountPointRequirement.NONE; //An invalid MountPoint with no required MountPoint doesn't seem sensible
|
||||
assert requirement != MountPointRequirement.PARENT_OPT_MOUNT_POINT; //Not implemented anywhere (yet)
|
||||
|
||||
return requirement == MountPointRequirement.EMPTY_MOUNT_POINT;
|
||||
}
|
||||
|
||||
@@ -162,6 +162,7 @@ public class UnlockWorkflow extends Task<Boolean> {
|
||||
private void handleInvalidMountPoint(InvalidMountPointException e) {
|
||||
MountPointRequirement requirement = vault.getMountPointRequirement();
|
||||
assert requirement != MountPointRequirement.NONE; //An invalid MountPoint with no required MountPoint doesn't seem sensible
|
||||
assert requirement != MountPointRequirement.PARENT_OPT_MOUNT_POINT; //Not implemented anywhere (yet)
|
||||
|
||||
if (requirement == MountPointRequirement.EMPTY_MOUNT_POINT) {
|
||||
LOG.error("Unlock failed. Mount point not an empty directory or doesn't exist: {}", e.getMessage());
|
||||
@@ -174,7 +175,7 @@ public class UnlockWorkflow extends Task<Boolean> {
|
||||
});
|
||||
}
|
||||
|
||||
private void handleGenericError(Exception e) {
|
||||
private void handleGenericError(Throwable e) {
|
||||
LOG.error("Unlock failed for technical reasons.", e);
|
||||
Platform.runLater(() -> {
|
||||
errorComponent.cause(e).window(window).returnToScene(window.getScene()).build().showErrorScene();
|
||||
|
||||
Reference in New Issue
Block a user