Bug 1394073 - Call onStoreFailed in case last payload fails in the uploader r=rnewman
MozReview-Commit-ID: 9cRuevmqbLD
--- a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/uploaders/PayloadDispatcher.java
+++ b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/uploaders/PayloadDispatcher.java
@@ -92,18 +92,18 @@ class PayloadDispatcher {
// If this was our very last commit, we're done storing records.
// Get Last-Modified timestamp from the response, and pass it upstream.
if (isLastPayload) {
finished(response.normalizedTimestampForHeader(SyncResponse.X_LAST_MODIFIED));
}
}
- void lastPayloadFailed() {
- uploader.finished(uploadTimestamp);
+ void lastPayloadFailed(Exception e) {
+ uploader.sessionStoreDelegate.onStoreFailed(e);
}
private void finished(long lastModifiedTimestamp) {
bumpTimestampTo(uploadTimestamp, lastModifiedTimestamp);
uploader.finished(uploadTimestamp);
}
void finalizeQueue(final boolean needToCommit, final Runnable finalRunnable) {
--- a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/uploaders/PayloadUploadDelegate.java
+++ b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/uploaders/PayloadUploadDelegate.java
@@ -195,12 +195,12 @@ class PayloadUploadDelegate implements S
public void handleRequestError(Exception e) {
for (String guid : postedRecordGuids) {
dispatcher.recordFailed(e, guid);
}
// GC
postedRecordGuids = null;
if (isLastPayload) {
- dispatcher.lastPayloadFailed();
+ dispatcher.lastPayloadFailed(e);
}
}
}
\ No newline at end of file
--- a/mobile/android/tests/background/junit4/src/org/mozilla/gecko/sync/repositories/uploaders/PayloadUploadDelegateTest.java
+++ b/mobile/android/tests/background/junit4/src/org/mozilla/gecko/sync/repositories/uploaders/PayloadUploadDelegateTest.java
@@ -75,17 +75,17 @@ public class PayloadUploadDelegateTest {
@Override
public void recordFailed(final Exception e, final String recordGuid) {
recordUploadFailed = true;
failedRecords.put(recordGuid, e);
}
@Override
- public void lastPayloadFailed() {
+ public void lastPayloadFailed(Exception e) {
didLastPayloadFail = true;
}
}
class MockRepositorySessionStoreDelegate implements RepositorySessionStoreDelegate {
Exception storeFailedException;
ArrayList<String> succeededGuids = new ArrayList<>();
HashMap<String, Exception> failedGuids = new HashMap<>();