diff options
author | Danny Baumann <dannybaumann@web.de> | 2015-06-08 15:18:48 +0200 |
---|---|---|
committer | Danny Baumann <dannybaumann@web.de> | 2015-06-08 15:21:35 +0200 |
commit | 681988f90cc4da97fe6abd3099e4275584663682 (patch) | |
tree | 616934f6a3fbfe6939a7d4d7d532fba224d13f7d | |
parent | b80c3bdb5aa86c93d52012a5ea56855a40e92dc2 (diff) | |
download | android_packages_apps_Email-681988f90cc4da97fe6abd3099e4275584663682.tar.gz android_packages_apps_Email-681988f90cc4da97fe6abd3099e4275584663682.tar.bz2 android_packages_apps_Email-681988f90cc4da97fe6abd3099e4275584663682.zip |
Fix ArrayIndexOutOfBoundsException.
This crash happens when the server isn't able to resolve the MSN:
FATAL EXCEPTION: IdleReader 3:Inbox
Process: com.android.email, PID: 3200
java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
at com.android.email.mail.store.ImapFolder.extractImapChanges(ImapFolder.java:1641)
at com.android.email.mail.store.ImapFolder.access$700(ImapFolder.java:77)
at com.android.email.mail.store.ImapFolder$1.run(ImapFolder.java:294)
Change-Id: I8a8c7cf3f2949630ee9db3646e5832246d69132d
-rw-r--r-- | provider_src/com/android/email/mail/store/ImapFolder.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/provider_src/com/android/email/mail/store/ImapFolder.java b/provider_src/com/android/email/mail/store/ImapFolder.java index eb0535d2a..13361650b 100644 --- a/provider_src/com/android/email/mail/store/ImapFolder.java +++ b/provider_src/com/android/email/mail/store/ImapFolder.java @@ -1638,7 +1638,11 @@ public class ImapFolder extends Folder { // Transform MSNs to UIDs for (String msn : msns) { String[] uids = searchForUids(String.format(Locale.US, "%s:%s", msn, msn)); - imapIdleChanges.mMessageToFetch.add(uids[0]); + if (uids.length > 0) { + imapIdleChanges.mMessageToFetch.add(uids[0]); + } else { + throw new MessagingException("Server could not resolve MSN " + msn); + } } } catch (MessagingException ex) { // Server doesn't support UID. We have to do a full sync (since |