瀏覽代碼

Revert "Adding method to clean up _our_ tmp mounting dirs to mitigate #1061 and #1013"

This reverts commit 01522e8c972e5ef4e9af90bf4d981689819b3f1a.
Armin Schrenk 4 年之前
父節點
當前提交
d24734e16f

+ 4 - 43
main/commons/src/main/java/org/cryptomator/common/mountpoint/TemporaryMountPointChooser.java

@@ -3,8 +3,6 @@ package org.cryptomator.common.mountpoint;
 import org.apache.commons.lang3.SystemUtils;
 import org.cryptomator.common.Environment;
 import org.cryptomator.common.settings.VaultSettings;
-import org.cryptomator.common.settings.VolumeImpl;
-import org.cryptomator.common.vaults.MountPointRequirement;
 import org.cryptomator.common.vaults.Volume;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -12,12 +10,9 @@ import org.slf4j.LoggerFactory;
 import javax.inject.Inject;
 import java.io.File;
 import java.io.IOException;
-import java.nio.file.DirectoryStream;
 import java.nio.file.Files;
-import java.nio.file.LinkOption;
 import java.nio.file.Path;
 import java.nio.file.Paths;
-import java.nio.file.attribute.BasicFileAttributes;
 import java.util.Optional;
 
 public class TemporaryMountPointChooser implements MountPointChooser {
@@ -47,55 +42,21 @@ public class TemporaryMountPointChooser implements MountPointChooser {
 
 	@Override
 	public Optional<Path> chooseMountPoint(Volume caller) {
-		return this.environment.getMountPointsDir().map(p -> choose(p, caller));
+		return this.environment.getMountPointsDir().map(this::choose);
 	}
 
-	private Path choose(Path parent, Volume caller) {
-		String basename = this.vaultSettings.mountName().get(); //TODO: this is a normalized name, but if we mount into a folder we do not need to normalize
+	private Path choose(Path parent) {
+		String basename = this.vaultSettings.mountName().get();
 		for (int i = 0; i < MAX_TMPMOUNTPOINT_CREATION_RETRIES; i++) {
 			Path mountPoint = parent.resolve(basename + "_" + i);
-			if (Files.notExists(mountPoint, LinkOption.NOFOLLOW_LINKS)) { //let's be explicit
+			if (Files.notExists(mountPoint)) {
 				return mountPoint;
-			} else {
-				try {
-					removeLeftOvers(mountPoint, caller);
-					return mountPoint;
-				} catch (IOException e) {
-					//NO-OP, try next
-				}
 			}
 		}
 		LOG.error("Failed to find feasible mountpoint at {}{}{}_x. Giving up after {} attempts.", parent, File.separator, basename, MAX_TMPMOUNTPOINT_CREATION_RETRIES);
 		return null;
 	}
 
-	//see https://github.com/cryptomator/cryptomator/issues/1013 and https://github.com/cryptomator/cryptomator/issues/1061
-	private void removeLeftOvers(Path mountPoint, Volume caller) throws IOException {
-		if (!Files.isDirectory(mountPoint, LinkOption.NOFOLLOW_LINKS)) {
-			throw new IOException(); //if not a directory, we do not touch it
-		}
-
-		if (VolumeImpl.DOKANY.equals(caller.getImplementationType())) {
-			try {
-				var attrTarget = Files.readAttributes(mountPoint, BasicFileAttributes.class); //we follow the link and see if it exists
-			} catch (IOException e) {
-				Files.delete(mountPoint); //broken link file, we delete it
-				return;
-			}
-		} else if (VolumeImpl.FUSE.equals(caller.getImplementationType())) {
-			try (DirectoryStream<Path> ds = Files.newDirectoryStream(mountPoint)) {
-				if (!ds.iterator().hasNext()) {
-					if (caller.getMountPointRequirement().equals(MountPointRequirement.PARENT_NO_MOUNT_POINT)) {
-						Files.delete(mountPoint);
-					}
-					return;
-				}
-			}
-		}
-
-		throw new IOException(); //in the default we do not touch anything
-	}
-
 	@Override
 	public boolean prepare(Volume caller, Path mountPoint) throws InvalidMountPointException {
 		// https://github.com/osxfuse/osxfuse/issues/306#issuecomment-245114592: