Guard NPE when fetching a voicemail that does not exist on the server

Bug:28174122
Change-Id: I5b8e41979fed3e4d6037aa4588f68c74c9a0c835
diff --git a/src/com/android/phone/common/mail/store/ImapFolder.java b/src/com/android/phone/common/mail/store/ImapFolder.java
index 90c552d..13c7424 100644
--- a/src/com/android/phone/common/mail/store/ImapFolder.java
+++ b/src/com/android/phone/common/mail/store/ImapFolder.java
@@ -15,6 +15,7 @@
  */
 package com.android.phone.common.mail.store;
 
+import android.annotation.Nullable;
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.preference.PreferenceManager;
@@ -213,7 +214,7 @@
         }
     }
 
-
+    @Nullable
     public Message getMessage(String uid) throws MessagingException {
         checkOpen();
 
@@ -223,6 +224,7 @@
                 return new ImapMessage(uid, this);
             }
         }
+        LogUtils.e(TAG, "UID " + uid + " not found on server");
         return null;
     }
 
diff --git a/src/com/android/phone/vvm/omtp/imap/ImapHelper.java b/src/com/android/phone/vvm/omtp/imap/ImapHelper.java
index da2d34b..d041221 100644
--- a/src/com/android/phone/vvm/omtp/imap/ImapHelper.java
+++ b/src/com/android/phone/vvm/omtp/imap/ImapHelper.java
@@ -276,14 +276,16 @@
     }
 
     public boolean fetchVoicemailPayload(VoicemailFetchedCallback callback, final String uid) {
-        Message message;
         try {
             mFolder = openImapFolder(ImapFolder.MODE_READ_WRITE);
             if (mFolder == null) {
                 // This means we were unable to successfully open the folder.
                 return false;
             }
-            message = mFolder.getMessage(uid);
+            Message message = mFolder.getMessage(uid);
+            if (message == null) {
+                return false;
+            }
             VoicemailPayload voicemailPayload = fetchVoicemailPayload(message);
 
             if (voicemailPayload == null) {
@@ -326,6 +328,9 @@
             }
 
             Message message = mFolder.getMessage(uid);
+            if (message == null) {
+                return false;
+            }
 
             MessageStructureWrapper messageStructureWrapper = fetchMessageStructure(message);
             if (messageStructureWrapper != null) {