Skip to content

Commit 4dfbdaa

Browse files
committed
fix(DataStore): MutationEvent dequeue include inProcess true events
1 parent 3e580ab commit 4dfbdaa

File tree

1 file changed

+23
-20
lines changed

1 file changed

+23
-20
lines changed

AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/MutationSync/AWSMutationDatabaseAdapter/AWSMutationDatabaseAdapter+MutationEventSource.swift

+23-20
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,30 @@ extension AWSMutationDatabaseAdapter: MutationEventSource {
1616
completion(.failure(DataStoreError.nilStorageAdapter()))
1717
return
1818
}
19-
20-
let fields = MutationEvent.keys
21-
let predicate = fields.inProcess == false || fields.inProcess == nil
2219
let sort = QuerySortDescriptor(fieldName: MutationEvent.keys.createdAt.stringValue, order: .ascending)
23-
storageAdapter.query(MutationEvent.self,
24-
predicate: predicate,
25-
sort: [sort],
26-
paginationInput: nil,
27-
eagerLoad: true) { result in
28-
switch result {
29-
case .failure(let dataStoreError):
30-
completion(.failure(dataStoreError))
31-
case .success(let mutationEvents):
32-
guard let notInProcessEvent = mutationEvents.first else {
33-
self.nextEventPromise.set(completion)
34-
return
35-
}
36-
self.markInProcess(mutationEvent: notInProcessEvent,
37-
storageAdapter: storageAdapter,
38-
completion: completion)
39-
}
20+
storageAdapter.query(
21+
MutationEvent.self,
22+
predicate: nil,
23+
sort: [sort],
24+
paginationInput: nil,
25+
eagerLoad: true) { result in
26+
switch result {
27+
case .failure(let dataStoreError):
28+
completion(.failure(dataStoreError))
29+
case .success(let mutationEvents):
30+
guard let mutationEvent = mutationEvents.first else {
31+
self.nextEventPromise.set(completion)
32+
return
33+
}
34+
if mutationEvent.inProcess {
35+
log.verbose("The head of the MutationEvent queue was already inProcess (most likely interrupted process): \(mutationEvent)")
36+
completion(.success(mutationEvent))
37+
} else {
38+
self.markInProcess(mutationEvent: mutationEvent,
39+
storageAdapter: storageAdapter,
40+
completion: completion)
41+
}
42+
}
4043

4144
}
4245
}

0 commit comments

Comments
 (0)