From 1bbcd105a164ebbd69ee3fd1fe8fb75cd8a8c0cb Mon Sep 17 00:00:00 2001 From: Fred Quintana Date: Wed, 10 Feb 2010 10:04:33 -0800 Subject: [PATCH] fix an NPE in SyncManager's dump where it can get a null AuthorityInfo; instead create one if one doesn't exist yet --- core/java/android/content/SyncManager.java | 2 +- core/java/android/content/SyncStorageEngine.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java index ebb95e87b4e29..9ff2e25bd540b 100644 --- a/core/java/android/content/SyncManager.java +++ b/core/java/android/content/SyncManager.java @@ -1041,7 +1041,7 @@ public class SyncManager implements OnAccountsUpdateListener { continue; } - SyncStorageEngine.AuthorityInfo settings = mSyncStorageEngine.getAuthority( + SyncStorageEngine.AuthorityInfo settings = mSyncStorageEngine.getOrCreateAuthority( account, syncAdapterType.type.authority); SyncStatusInfo status = mSyncStorageEngine.getOrCreateSyncStatus(settings); pw.print(" "); pw.print(settings.authority); diff --git a/core/java/android/content/SyncStorageEngine.java b/core/java/android/content/SyncStorageEngine.java index 07a1f46aa91b1..fcb910dd334a6 100644 --- a/core/java/android/content/SyncStorageEngine.java +++ b/core/java/android/content/SyncStorageEngine.java @@ -632,9 +632,11 @@ public class SyncStorageEngine extends Handler { } } - public AuthorityInfo getAuthority(Account account, String authority) { + public AuthorityInfo getOrCreateAuthority(Account account, String authority) { synchronized (mAuthorities) { - return getAuthorityLocked(account, authority, null); + return getOrCreateAuthorityLocked(account, authority, + -1 /* assign a new identifier if creating a new authority */, + true /* write to storage if this results in a change */); } }