Revision flags get cleared while saving resolved document in Java
Description
Java clears the revision flags in its saveResolvedDocument function CBL / SG Version: Android - 2.7.0-255 , iOS - 2.7.0-99, SGW - 2.7.0-165 *Steps to Reproduce: * 1..Net client as user1 created new list and task with attachment and shared with user2(Android client) 2. Both clients went offline. 3. User1 updated image and marked as complete 4. user2 edited the name of the same task with new name 5. both clients came online
Steps from Jim from his point of view : Start with a synced document between two devices at the same rev Go offline with both Make at least one change on device 1 with no blob change Make more than one change on device 2 with a blob change Bring device 1 online, so it syncs first Bring device 2 online, so its sync will get 409 SG sends device 2 rev 7 which will cause a pull conflict Java conflict resolution handler accidentally clears the attachment flag on the new revision LiteCore doesn't send the _attachments dictionary since the rev doesn't have the attachment flag
Actual Result: 6. User1 and user2 had the task marked as complete, but has old image which attached while created new task at step 1
Expected Result: user1 and user2 should have image updated and mark the task 'checked' as user1 wins with default conflict resolution
Note : Did not provide any logs as we tracked down the issue
Java clears the revision flags in its saveResolvedDocument function
CBL / SG Version: Android - 2.7.0-255 , iOS - 2.7.0-99, SGW - 2.7.0-165
*Steps to Reproduce: *
1..Net client as user1 created new list and task with attachment and shared with user2(Android client)
2. Both clients went offline.
3. User1 updated image and marked as complete
4. user2 edited the name of the same task with new name
5. both clients came online
Steps from Jim from his point of view :
Start with a synced document between two devices at the same rev
Go offline with both
Make at least one change on device 1 with no blob change
Make more than one change on device 2 with a blob change
Bring device 1 online, so it syncs first
Bring device 2 online, so its sync will get 409
SG sends device 2 rev 7 which will cause a pull conflict
Java conflict resolution handler accidentally clears the attachment flag on the new revision
LiteCore doesn't send the
_attachments
dictionary since the rev doesn't have the attachment flagActual Result:
6. User1 and user2 had the task marked as complete, but has old image which attached while created new task at step 1
Expected Result: user1 and user2 should have image updated and mark the task 'checked' as user1 wins with default conflict resolution
Note : Did not provide any logs as we tracked down the issue