Bug 1350442 - Use the main storeWorkQueue for failures in the buffering middleware r=rnewman
MozReview-Commit-ID: ByZtR5zSKZB
--- 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) {