RKRefetchManagedObjectInContext() can return object on incorrect context #2283
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.
The
RKRefetchManagedObjectInContext()
function takes an object in an original context and refetches it on the provided destination context. However, if the object only has a temporary ID, the same object is returned. While it is true that refetching on the destination context would fail in the absence of a permanent ID, returning the original object can lead to it being used on the wrong, destination queue.While this function is only called inside of an
RKRefetchingMappingResult
, which in turn only gets created byRKManagedObjectRequestOperation
after permanent IDs are obtained, I think it's dangerous to leave a potential context-crossing error in place and would be better to returnnil
.