diff options
Diffstat (limited to 'core/java/android/content/SyncManager.java')
-rw-r--r-- | core/java/android/content/SyncManager.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java index ba18615..b2d406b 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"); |