Fix bug #2551196
* Handle the case in which a Mailbox to be synced doesn't have
a serverId (rare case which happened to a Zimbra user)
* Tweak logging to improve debugability of similar issues
Bug: 2551196
Change-Id: Id61cee5c4b33eb2f87455fbae0899fec8ff3748f
diff --git a/src/com/android/exchange/SyncManager.java b/src/com/android/exchange/SyncManager.java
index 043411b..e93d6e0 100644
--- a/src/com/android/exchange/SyncManager.java
+++ b/src/com/android/exchange/SyncManager.java
@@ -1598,7 +1598,7 @@
thread.start();
mServiceMap.put(m.mId, service);
runAwake(m.mId);
- if (!m.mServerId.startsWith(Eas.ACCOUNT_MAILBOX_PREFIX)) {
+ if ((m.mServerId != null) && !m.mServerId.startsWith(Eas.ACCOUNT_MAILBOX_PREFIX)) {
stopPing(m.mAccountKey);
}
}
@@ -1782,9 +1782,12 @@
}
}
}
- stopServiceThreads();
log("Shutdown requested");
+ } catch (RuntimeException e) {
+ Log.e(TAG, "RuntimeException in SyncManager", e);
+ throw e;
} finally {
+ log("Finishing SyncManager");
// Lots of cleanup here
// Stop our running syncs
stopServiceThreads();