From 773431641672107dff06d1016be01745b33b243d Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Thu, 9 Mar 2023 01:29:38 +0100 Subject: [PATCH] Fix accidental purge of all metadatas caused by trying to call updateDirectoryMetadatasFromItemMetadatas when reading the root container Signed-off-by: Claudio Cambra --- .../FileProviderExt/FileProviderEnumerator.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift index 68dfeae64..e96ee7135 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift @@ -245,7 +245,11 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator { // STORE DATA FOR CURRENTLY SCANNED DIRECTORY // We have now scanned this directory's contents, so update with etag in order to not check again if not needed - dbManager.updateDirectoryMetadatasFromItemMetadatas(account: ncKitAccount, parentDirectoryServerUrl: serverUrl, updatedDirectoryItemMetadatas: [directoryMetadata], recordEtag: true) + // unless it's the root container -- this method deletes metadata for directories under the path that we do not + // provide as the updatedDirectoryItemMetadatas, don't do this with root folder or we will purge metadatas wrongly + if serverUrl != ncAccount.davFilesUrl { + dbManager.updateDirectoryMetadatasFromItemMetadatas(account: ncKitAccount, parentDirectoryServerUrl: serverUrl, updatedDirectoryItemMetadatas: [directoryMetadata], recordEtag: true) + } let receivedMetadataChanges = dbManager.updateItemMetadatas(account: ncKitAccount, serverUrl: serverUrl, updatedMetadatas: metadatas) -- 2.30.2