This PR adds the functionality for recovering namespaces that had interrupted CRUD operations. Once L2R/R2L logic is complete, there will be another PR for STITCH-2291 which will add the undo collection logic in conflict resolution functions, as well as add assertions that the undo collection is empty after any DataSynchronizer CRUD operation. That PR should be significantly smaller since all of the main recovery logic is implemented here.
I added various drive-by fixes, including a refactor of InstanceSynchronization. I'm not completely happy with how it's structured now, since there is a lot of code that can be cleaned up, but for now it works fine and it's relatively similar to what Android is doing. We can refactor this when we focus on cleanup tasks next week.
This PR adds the functionality for recovering namespaces that had interrupted CRUD operations. Once L2R/R2L logic is complete, there will be another PR for STITCH-2291 which will add the undo collection logic in conflict resolution functions, as well as add assertions that the undo collection is empty after any DataSynchronizer CRUD operation. That PR should be significantly smaller since all of the main recovery logic is implemented here.
I added various drive-by fixes, including a refactor of
InstanceSynchronization
. I'm not completely happy with how it's structured now, since there is a lot of code that can be cleaned up, but for now it works fine and it's relatively similar to what Android is doing. We can refactor this when we focus on cleanup tasks next week.