Bug 1350442 - Use the main storeWorkQueue for failures in the buffering middleware r=rnewman draft
authorGrigory Kruglov <gkruglov@mozilla.com>
Tue, 04 Apr 2017 17:15:02 -0400
changeset 555780 9cef0ba0c76e0ef11a32585f1c73508f87337a02
parent 555725 b043233ec04f06768d59dcdfb9e928142280f3cc
child 555781 41767ad502bd5ad8a0a487235bfdca8cf0d0c927
push id52346
push userbmo:gkruglov@mozilla.com
push dateTue, 04 Apr 2017 21:15:43 +0000
reviewersrnewman
bugs1350442
milestone55.0a1
Bug 1350442 - Use the main storeWorkQueue for failures in the buffering middleware r=rnewman MozReview-Commit-ID: ByZtR5zSKZB
mobile/android/services/src/main/java/org/mozilla/gecko/sync/middleware/BufferingMiddlewareRepositorySession.java
--- a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/middleware/BufferingMiddlewareRepositorySession.java
+++ b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/middleware/BufferingMiddlewareRepositorySession.java
@@ -29,18 +29,16 @@ import java.util.concurrent.Executors;
  *  Fetch is pass-through, store is buffered.
  *
  * @author grisha
  */
 /* package-local */ class BufferingMiddlewareRepositorySession extends MiddlewareRepositorySession {
     private final BufferStorage bufferStorage;
     private final long syncDeadlineMillis;
 
-    private ExecutorService storeDelegateExecutor = Executors.newSingleThreadExecutor();
-
     /* package-local */ BufferingMiddlewareRepositorySession(
             RepositorySession repositorySession, MiddlewareRepository repository,
             long syncDeadlineMillis, BufferStorage bufferStorage) {
         super(repositorySession, repository);
         this.syncDeadlineMillis = syncDeadlineMillis;
         this.bufferStorage = bufferStorage;
     }
 
@@ -106,17 +104,17 @@ import java.util.concurrent.Executors;
     @Override
     public void storeDone(final long end) {
         bufferStorage.flush();
 
         // Determine if we have enough time to merge the buffer data.
         // If we don't have enough time now, we keep our buffer and try again later.
         if (!mayProceedToMergeBuffer()) {
             super.abort();
-            storeDelegate.deferredStoreDelegate(storeDelegateExecutor).onStoreFailed(new SyncDeadlineReachedException());
+            storeDelegate.deferredStoreDelegate(storeWorkQueue).onStoreFailed(new SyncDeadlineReachedException());
             return;
         }
 
         doMergeBuffer(end);
     }
 
     @VisibleForTesting
     /* package-local */ void doMergeBuffer(long end) {