From c2ca73929364c35694c5f1069a3b9b93468d4f26 Mon Sep 17 00:00:00 2001 From: Bao-Long Nguyen-Trong Date: Fri, 25 Sep 2009 17:02:50 +0000 Subject: [PATCH] . Added defensive code against empty self BCC address This fixed issues 639 & 646 --- src/com/android/email/activity/MessageCompose.java | 6 +++++- src/com/android/email/mail/Address.java | 12 +++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/com/android/email/activity/MessageCompose.java b/src/com/android/email/activity/MessageCompose.java index 32552fa25..333525e42 100644 --- a/src/com/android/email/activity/MessageCompose.java +++ b/src/com/android/email/activity/MessageCompose.java @@ -516,7 +516,11 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc } if (!ACTION_EDIT_DRAFT.equals(action)) { - addAddress(mBccView, new Address(mAccount.getAlwaysBcc(), "")); + String bccAddress = mAccount.getAlwaysBcc(); + if (bccAddress!=null + && !"".equals(bccAddress)) { + addAddress(mBccView, new Address(mAccount.getAlwaysBcc(), "")); + } } Log.d(Email.LOG_TAG, "action = " + action + ", mAccount = " + mAccount + ", mFolder = " + mFolder + ", mSourceMessageUid = " + mSourceMessageUid); diff --git a/src/com/android/email/mail/Address.java b/src/com/android/email/mail/Address.java index 1797449cd..e6ff779d7 100644 --- a/src/com/android/email/mail/Address.java +++ b/src/com/android/email/mail/Address.java @@ -70,10 +70,15 @@ public class Address { */ public static Address[] parseUnencoded(String addressList) { List
addresses = new ArrayList
(); - if (addressList!=null) { + if (addressList!=null + && !"".equals(addressList)) { Rfc822Token[] tokens = Rfc822Tokenizer.tokenize(addressList); for (Rfc822Token token : tokens) { - addresses.add(new Address(token.getAddress(), token.getName())); + String address = token.getAddress(); + if (address!=null + && !"".equals(address)) { + addresses.add(new Address(token.getAddress(), token.getName())); + } } } return addresses.toArray(new Address[0]); @@ -88,7 +93,8 @@ public class Address { */ public static Address[] parse(String addressList) { ArrayList
addresses = new ArrayList
(); - if (addressList == null) { + if (addressList == null + && !"".equals(addressList)) { return new Address[] {}; } try {