From aa7edda4719dc0accbc29ff917b4280f6b600675 Mon Sep 17 00:00:00 2001 From: Fred Quintana Date: Thu, 3 Dec 2009 14:18:58 -0800 Subject: don't reschedule syncs that failed with a tooManyRetries error --- core/java/android/content/SyncManager.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java index ba186159680d..b2d406b5e7c5 100644 --- a/core/java/android/content/SyncManager.java +++ b/core/java/android/content/SyncManager.java @@ -919,12 +919,16 @@ class SyncManager implements OnAccountsUpdateListener { + previousSyncOperation); } + // If this sync aborted because the internal sync loop retried too many times then + // don't reschedule. Otherwise we risk getting into a retry loop. // If the operation succeeded to some extent then retry immediately. // If this was a two-way sync then retry soft errors with an exponential backoff. // If this was an upward sync then schedule a two-way sync immediately. // Otherwise do not reschedule. - - if (syncResult.madeSomeProgress()) { + if (syncResult.tooManyRetries) { + Log.d(TAG, "not retrying sync operation because it retried too many times: " + + previousSyncOperation); + } else if (syncResult.madeSomeProgress()) { if (isLoggable) { Log.d(TAG, "retrying sync operation immediately because " + "even though it had an error it achieved some success"); -- cgit v1.2.3-59-g8ed1b