cryptomator / cryptofs

Java Filesystem Provider with integrated encryption
GNU Affero General Public License v3.0
93 stars 35 forks source link

Replacing shortened file fails #175

Closed infeo closed 1 year ago

infeo commented 1 year ago

If encrypted node names exceed a configurable threshold, cryptofs shortens the node:

In the scenario, that an existing shortened file is replaced (aka moving a different file to the shortend files path), Cryptofs throws an exception:

## Filesystemprovider is jimfs 

Caused by: java.nio.file.FileAlreadyExistsException: /vault/d/FW/62AD46Y3CLSPBJCAZTO2EQD5TDALWH/-EIMycfzld_5fJFlbshZIvG5XR8=.c9s
    at com.google.common.jimfs.FileSystemView.createFile(FileSystemView.java:260)
    at com.google.common.jimfs.FileSystemView.createDirectory(FileSystemView.java:225)
    at com.google.common.jimfs.JimfsFileSystemProvider.createDirectory(JimfsFileSystemProvider.java:217)
    at java.base/java.nio.file.Files.createDirectory(Files.java:700)
    at org.cryptomator.cryptofs@2.7.0-SNAPSHOT/org.cryptomator.cryptofs.CryptoFileSystemImpl.moveFile(CryptoFileSystemImpl.java:602)
    at org.cryptomator.cryptofs@2.7.0-SNAPSHOT/org.cryptomator.cryptofs.CryptoFileSystemImpl.move(CryptoFileSystemImpl.java:574)
    at org.cryptomator.cryptofs@2.7.0-SNAPSHOT/org.cryptomator.cryptofs.MoveOperation.move(MoveOperation.java:37)
    at org.cryptomator.cryptofs@2.7.0-SNAPSHOT/org.cryptomator.cryptofs.CryptoFileSystemProvider.move(CryptoFileSystemProvider.java:255)
    at java.base/java.nio.file.Files.move(Files.java:1432)