From 56077ee40f87b9591cafaf3d49477fb50dcd20f6 Mon Sep 17 00:00:00 2001 From: Wu-Hui Date: Thu, 24 Feb 2022 12:31:10 -0500 Subject: [PATCH 1/2] Make next collection group to update more deterministic --- .../firebase/firestore/local/SQLiteIndexManager.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/firebase-firestore/src/main/java/com/google/firebase/firestore/local/SQLiteIndexManager.java b/firebase-firestore/src/main/java/com/google/firebase/firestore/local/SQLiteIndexManager.java index 629123b95b9..7a0def6fc63 100644 --- a/firebase-firestore/src/main/java/com/google/firebase/firestore/local/SQLiteIndexManager.java +++ b/firebase-firestore/src/main/java/com/google/firebase/firestore/local/SQLiteIndexManager.java @@ -93,9 +93,14 @@ final class SQLiteIndexManager implements IndexManager { private final Queue nextIndexToUpdate = new PriorityQueue<>( 10, - (l, r) -> - Long.compare( - l.getIndexState().getSequenceNumber(), r.getIndexState().getSequenceNumber())); + (l, r) -> { + int sequenceCmp = Long.compare( + l.getIndexState().getSequenceNumber(), r.getIndexState().getSequenceNumber()); + if(sequenceCmp == 0) { + return l.getCollectionGroup().compareTo(r.getCollectionGroup()); + } + return sequenceCmp; + }); private boolean started = false; private int memoizedMaxIndexId = -1; From 3aaa5e404b20073b247f506082e55ef379449ee2 Mon Sep 17 00:00:00 2001 From: Wu-Hui Date: Thu, 24 Feb 2022 12:33:50 -0500 Subject: [PATCH 2/2] Format --- .../firebase/firestore/local/SQLiteIndexManager.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/firebase-firestore/src/main/java/com/google/firebase/firestore/local/SQLiteIndexManager.java b/firebase-firestore/src/main/java/com/google/firebase/firestore/local/SQLiteIndexManager.java index 7a0def6fc63..4c4ef52c653 100644 --- a/firebase-firestore/src/main/java/com/google/firebase/firestore/local/SQLiteIndexManager.java +++ b/firebase-firestore/src/main/java/com/google/firebase/firestore/local/SQLiteIndexManager.java @@ -94,9 +94,10 @@ final class SQLiteIndexManager implements IndexManager { new PriorityQueue<>( 10, (l, r) -> { - int sequenceCmp = Long.compare( - l.getIndexState().getSequenceNumber(), r.getIndexState().getSequenceNumber()); - if(sequenceCmp == 0) { + int sequenceCmp = + Long.compare( + l.getIndexState().getSequenceNumber(), r.getIndexState().getSequenceNumber()); + if (sequenceCmp == 0) { return l.getCollectionGroup().compareTo(r.getCollectionGroup()); } return sequenceCmp;