summaryrefslogtreecommitdiffstats
path: root/core/java/android/content
diff options
context:
space:
mode:
authorFred Quintana <fredq@google.com>2009-12-03 14:18:58 -0800
committerFred Quintana <fredq@google.com>2009-12-03 14:18:58 -0800
commitaa7edda4719dc0accbc29ff917b4280f6b600675 (patch)
treef35df42b80eca9d0b58a7b8d0046c6995f4b4d9c /core/java/android/content
parentdb08d5cd441424e4f9621aae7c2414934f781400 (diff)
downloadframeworks_base-aa7edda4719dc0accbc29ff917b4280f6b600675.zip
frameworks_base-aa7edda4719dc0accbc29ff917b4280f6b600675.tar.gz
frameworks_base-aa7edda4719dc0accbc29ff917b4280f6b600675.tar.bz2
don't reschedule syncs that failed with a tooManyRetries error
Diffstat (limited to 'core/java/android/content')
-rw-r--r--core/java/android/content/SyncManager.java8
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");