Null Protect Account Info
Bug: 11355850
Change-Id: Idb42769b3009787efb4edfe2ffbd65171cd8d8d8
diff --git a/src/com/android/email/provider/AccountReconciler.java b/src/com/android/email/provider/AccountReconciler.java
index 44f0bd3..328e329 100644
--- a/src/com/android/email/provider/AccountReconciler.java
+++ b/src/com/android/email/provider/AccountReconciler.java
@@ -154,11 +154,16 @@
// AccountManager account
for (final Account providerAccount : emailProviderAccounts) {
final String providerAccountName = providerAccount.mEmailAddress;
- final String providerAccountType =
- EmailServiceUtils.getServiceInfoForAccount(context, providerAccount.mId)
- .accountType;
- if (!hasAmAccount(accountManagerAccounts, providerAccountName, providerAccountType)) {
- if ((providerAccount.mFlags & Account.FLAGS_INCOMPLETE) != 0) {
+ final EmailServiceUtils.EmailServiceInfo infoForAccount = EmailServiceUtils
+ .getServiceInfoForAccount(context, providerAccount.mId);
+
+ // We want to delete the account if there is no matching Account Manager account for it
+ // unless it is flagged as incomplete. We also want to delete it if we can't find
+ // an accountInfo object for it.
+ if (infoForAccount == null || !hasAmAccount(
+ accountManagerAccounts, providerAccountName, infoForAccount.accountType)) {
+ if (infoForAccount != null &&
+ (providerAccount.mFlags & Account.FLAGS_INCOMPLETE) != 0) {
LogUtils.w(Logging.LOG_TAG,
"Account reconciler noticed incomplete account; ignoring");
continue;