Fix CoreData Thread Safety in retryCachedData #182
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
Some customers are experiencing crashes when the upload was not successful and the data was cached. The crash occurs on app relaunch when retryCachedData() is called, specifically when trying to access CoreData managed object properties on a different thread than the managed object context.
Changes
Modified retryCachedData() method to handle CoreData objects safely
Before
The original implementation accessed CoreData managed object properties (uploadData.type, uploadData.data, etc.) directly while iterating through them on a different thread than where they were fetched.
After
The new implementation: