CM seems to be case sensitive on Windows


#1

Windows file systems are not case sensitive, but it appears that the Cryptomator Windows client is case sensitive. If I try to manually type a path into Windows Explorer’s address bar (Windows Explorer, NOT INTERNET Explorer! ;), and I don’t get the case right, it’ll show me an empty folder. But if I get the case right, it shows me the files in it. From the command line, I have to get the casing right too, or it tells me it can’t find it. Windows Explorer doesn’t give me errors though… just shows an empty folder.


#2

Mhm, cannot reproduce it.
No matter if I use WebDAV or Dokany as interface. The Windows Explorer does not react case sensitive. I have several folders in my vault which are only uppercases, but if I type in the explorer only which lowercases (or even a mix of it), it always finds the correct path and shows its content.

Please provide more info.
Which Cryptomator version?
which interface?
Wich windows version?
anything suspicious in the log file?


#3

Cryptomator 1.4.4
Dokan Library 1.2.1000 (x64)
Using dokany interface
Windows 10 Enterprise version 1607

My log files had not been written to today, so I tried entering my path into Windows Explorer (intentionally using the wrong case), and it immediately wrote to the log file.

Here’s a section from the log file: (PII masked)
At the end of this, it just repeats itself for 800KB more.
Note that it can’t find “/scans/split” <-- all lower case in the log file. The actual path is \Scans\Split. And what I entered into Windows Explorer to trigger the issue was \Scans\split <-- lowercase “s” on “split”.

Note that the Scans folder has 26 files plus the “Split” folder.
The Split folder has almost 1,000 files in it (and no subfolders).


16:59:51.124 [main] INFO  org.cryptomator.launcher.Cryptomator - Starting Cryptomator 1.4.4 on Windows 10 10.0 (amd64)
16:59:51.296 [main] INFO  o.c.launcher.FileOpenRequestHandler - Unable to setOpenFileHandler, probably not supported on this OS.
16:59:53.301 [JavaFX Application Thread] INFO  o.c.launcher.MainApplication - JavaFX application started.
16:59:53.472 [JavaFX Application Thread] INFO  o.c.common.settings.SettingsProvider - Settings loaded from C:\Users\MyUserName\AppData\Roaming\Cryptomator\settings.json
16:59:53.636 [JavaFX Application Thread] INFO  org.cryptomator.jni.JniModule - loaded WinFunctions.dll
16:59:53.694 [JavaFX Application Thread] INFO  o.c.ui.controllers.MainController - Unable to setPreferencesHandler, probably not supported on this OS.
16:59:55.521 [JavaFX Application Thread] WARN  o.c.ui.controllers.WelcomeController - Error checking for updates
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at java.base/sun.security.ssl.Alerts.getSSLException(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
	at java.base/sun.security.ssl.Handshaker.fatalSE(Unknown Source)
	at java.base/sun.security.ssl.Handshaker.fatalSE(Unknown Source)
	at java.base/sun.security.ssl.ClientHandshaker.checkServerCerts(Unknown Source)
	at java.base/sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source)
	at java.base/sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)
	at java.base/sun.security.ssl.Handshaker.processLoop(Unknown Source)
	at java.base/sun.security.ssl.Handshaker.processRecord(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.processInputRecord(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
	at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
	at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
	at org.cryptomator.ui.controllers.WelcomeController.lambda$checkForUpdates$2(WelcomeController.java:137)
	at org.cryptomator.ui.util.Tasks$TaskImpl.call(Tasks.java:139)
	at javafx.graphics/javafx.concurrent.Task$TaskCallable.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at java.base/sun.security.validator.PKIXValidator.doBuild(Unknown Source)
	at java.base/sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
	at java.base/sun.security.validator.Validator.validate(Unknown Source)
	at java.base/sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)
	at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
	at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
	... 24 common frames omitted
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source)
	at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
	at java.base/java.security.cert.CertPathBuilder.build(Unknown Source)
	... 30 common frames omitted
16:59:58.271 [JavaFX Application Thread] INFO  o.c.k.WindowsProtectedKeychainAccess - Creating new keychain at path C:\Users\MyUserName\AppData\Roaming\Cryptomator\keychain.json
17:24:25.794 [Background Thread 2] INFO  com.dokany.java.DokanyDriver - Dokany version: 100
17:24:25.796 [Background Thread 2] INFO  com.dokany.java.DokanyDriver - Dokany driver version: 400
17:25:42.223 [Thread-161627] ERROR o.c.frontend.dokany.ReadWriteAdapter - (19047) findFilesWithPattern(): Unable to list content of directory /scans/split. Error is {}
java.nio.file.NoSuchFileException: \\ServerName\Folder1\Folder2\VaultName\d\YZ\5I3KJZYR5Z4QYVMSJV6SGCLQEHNBZA
	at java.base/sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsDirectoryStream.<init>(Unknown Source)
	at java.base/sun.nio.fs.WindowsFileSystemProvider.newDirectoryStream(Unknown Source)
	at java.base/java.nio.file.Files.newDirectoryStream(Unknown Source)
	at org.cryptomator.cryptofs.CryptoDirectoryStream.<init>(CryptoDirectoryStream.java:55)
	at org.cryptomator.cryptofs.DirectoryStreamFactory.newDirectoryStream(DirectoryStreamFactory.java:45)
	at org.cryptomator.cryptofs.CryptoFileSystemImpl.newDirectoryStream(CryptoFileSystemImpl.java:309)
	at org.cryptomator.cryptofs.CryptoFileSystemProvider.newDirectoryStream(CryptoFileSystemProvider.java:312)
	at java.base/java.nio.file.Files.newDirectoryStream(Unknown Source)
	at org.cryptomator.frontend.dokany.ReadWriteAdapter.findFilesWithPattern(ReadWriteAdapter.java:496)
	at com.dokany.java.DokanyOperationsProxy$FindFilesWithPatternProxy.callback(DokanyOperationsProxy.java:112)
	at jdk.internal.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback(CallbackReference.java:520)
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.callback(CallbackReference.java:551)
17:25:42.243 [Thread-161648] ERROR o.c.frontend.dokany.ReadWriteAdapter - (19049) findFilesWithPattern(): Unable to list content of directory /scans. Error is {}
java.nio.file.NoSuchFileException: \\ServerName\Folder1\Folder2\VaultName\d\OW\JGRZBMXKZ3NK5BFTMAAY4DNEOELUXL
	at java.base/sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
	at java.base/sun.nio.fs.WindowsDirectoryStream.<init>(Unknown Source)
	at java.base/sun.nio.fs.WindowsFileSystemProvider.newDirectoryStream(Unknown Source)
	at java.base/java.nio.file.Files.newDirectoryStream(Unknown Source)
	at org.cryptomator.cryptofs.CryptoDirectoryStream.<init>(CryptoDirectoryStream.java:55)
	at org.cryptomator.cryptofs.DirectoryStreamFactory.newDirectoryStream(DirectoryStreamFactory.java:45)
	at org.cryptomator.cryptofs.CryptoFileSystemImpl.newDirectoryStream(CryptoFileSystemImpl.java:309)
	at org.cryptomator.cryptofs.CryptoFileSystemProvider.newDirectoryStream(CryptoFileSystemProvider.java:312)
	at java.base/java.nio.file.Files.newDirectoryStream(Unknown Source)
	at org.cryptomator.frontend.dokany.ReadWriteAdapter.findFilesWithPattern(ReadWriteAdapter.java:496)
	at com.dokany.java.DokanyOperationsProxy$FindFilesWithPatternProxy.callback(DokanyOperationsProxy.java:112)
	at jdk.internal.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback(CallbackReference.java:520)
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.callback(CallbackReference.java:551)

#4

Is your vault located on a network drive?
Because in the logs a UNC-path is given: \\ServerName\Folder1\Folder2\VaultName\d\OW\JGRZBMXKZ3NK5BFTMAAY4DNEOELUXL

There are different reports that there are problems with network drives.


#5

Yes. It’s on a network share.

Also, I discovered that it does not appear to respect filters. For example, if I go to the command line and type:

dir *.tif

It finds nothing, but I have thousands of TIF files in there.

Software I write to search for TIF files won’t find anything in there either.


#6

For the file filter exists already an issue, see here cryptomator/cryptomator#837.