@@ -159,8 +159,9 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {
159159 )
160160
161161 guard trashReadError == . success else {
162- let error =
163- trashReadError. fileProviderError ?? NSFileProviderError ( . cannotSynchronize)
162+ let error = trashReadError. fileProviderError (
163+ handlingNoSuchItemErrorUsingItemIdentifier: self . enumeratedItemIdentifier
164+ ) ?? NSFileProviderError ( . cannotSynchronize)
164165 listener? . enumerationActionFailed ( actionId: actionId, error: error)
165166 observer. finishEnumeratingWithError ( error)
166167 return
@@ -193,10 +194,11 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {
193194 For identifier: \( self . enumeratedItemIdentifier. rawValue, privacy: . public)
194195 """
195196 )
196- listener ? . enumerationActionFailed (
197- actionId : actionId , error : NSFileProviderError ( . noSuchItem )
197+ let error = NSError . fileProviderErrorForNonExistentItem (
198+ withIdentifier : self . enumeratedItemIdentifier
198199 )
199- observer. finishEnumeratingWithError ( NSFileProviderError ( . noSuchItem) )
200+ listener? . enumerationActionFailed ( actionId: actionId, error: error)
201+ observer. finishEnumeratingWithError ( error)
200202 return
201203 }
202204
@@ -229,8 +231,9 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {
229231 )
230232
231233 // TODO: Refactor for conciseness
232- let error =
233- readError? . fileProviderError ?? NSFileProviderError ( . cannotSynchronize)
234+ let error = readError? . fileProviderError (
235+ handlingNoSuchItemErrorUsingItemIdentifier: self . enumeratedItemIdentifier
236+ ) ?? NSFileProviderError ( . cannotSynchronize)
234237 listener? . enumerationActionFailed ( actionId: actionId, error: error)
235238 observer. finishEnumeratingWithError ( error)
236239 return
@@ -350,8 +353,9 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {
350353 """
351354 )
352355 // TODO: Refactor for conciseness
353- let fpError =
354- error? . fileProviderError ?? NSFileProviderError ( . cannotSynchronize)
356+ let fpError = error? . fileProviderError (
357+ handlingNoSuchItemErrorUsingItemIdentifier: self . enumeratedItemIdentifier
358+ ) ?? NSFileProviderError ( . cannotSynchronize)
355359 listener? . enumerationActionFailed ( actionId: actionId, error: fpError)
356360 observer. finishEnumeratingWithError ( fpError)
357361 return
@@ -367,6 +371,7 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {
367371 Self . completeChangesObserver (
368372 observer,
369373 anchor: anchor,
374+ enumeratedItemIdentifier: self . enumeratedItemIdentifier,
370375 account: account,
371376 remoteInterface: remoteInterface,
372377 dbManager: dbManager,
@@ -398,8 +403,9 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {
398403 )
399404
400405 guard trashReadError == . success else {
401- let error =
402- trashReadError. fileProviderError ?? NSFileProviderError ( . cannotSynchronize)
406+ let error = trashReadError. fileProviderError (
407+ handlingNoSuchItemErrorUsingItemIdentifier: self . enumeratedItemIdentifier
408+ ) ?? NSFileProviderError ( . cannotSynchronize)
403409 listener? . enumerationActionFailed ( actionId: actionId, error: error)
404410 observer. finishEnumeratingWithError ( error)
405411 return
@@ -454,7 +460,9 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {
454460 """
455461 )
456462
457- let error = readError!. fileProviderError ?? NSFileProviderError ( . cannotSynchronize)
463+ let error = readError? . fileProviderError (
464+ handlingNoSuchItemErrorUsingItemIdentifier: self . enumeratedItemIdentifier
465+ ) ?? NSFileProviderError ( . cannotSynchronize)
458466
459467 if readError!. isNotFoundError {
460468 Self . logger. info (
@@ -498,6 +506,7 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {
498506 Self . completeChangesObserver (
499507 observer,
500508 anchor: anchor,
509+ enumeratedItemIdentifier: self . enumeratedItemIdentifier,
501510 account: account,
502511 remoteInterface: remoteInterface,
503512 dbManager: dbManager,
@@ -534,6 +543,7 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {
534543 Self . completeChangesObserver (
535544 observer,
536545 anchor: anchor,
546+ enumeratedItemIdentifier: self . enumeratedItemIdentifier,
537547 account: account,
538548 remoteInterface: remoteInterface,
539549 dbManager: dbManager,
@@ -591,6 +601,7 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {
591601 private static func completeChangesObserver(
592602 _ observer: NSFileProviderChangeObserver ,
593603 anchor: NSFileProviderSyncAnchor ,
604+ enumeratedItemIdentifier: NSFileProviderItemIdentifier ,
594605 account: Account ,
595606 remoteInterface: RemoteInterface ,
596607 dbManager: FilesDatabaseManager ,
@@ -602,10 +613,14 @@ public class Enumerator: NSObject, NSFileProviderEnumerator {
602613 Self . logger. error (
603614 """
604615 Received invalid newMetadatas, updatedMetadatas or deletedMetadatas.
605- Finished enumeration of changes with error.
616+ Finished enumeration of changes with error.
606617 """
607618 )
608- observer. finishEnumeratingWithError ( NSFileProviderError ( . noSuchItem) )
619+ observer. finishEnumeratingWithError (
620+ NSError . fileProviderErrorForNonExistentItem (
621+ withIdentifier: enumeratedItemIdentifier
622+ )
623+ )
609624 return
610625 }
611626
0 commit comments