Fix bug with meeting responses

* We were sending the wrong collectionId to the server, resulting
  in a failure (status == 2)

Change-Id: I02ef4039a4ecfbc54ab5cdac2c36e39aea5d7170
diff --git a/src/com/android/exchange/EasSyncService.java b/src/com/android/exchange/EasSyncService.java
index b048a8a..3feeba8 100644
--- a/src/com/android/exchange/EasSyncService.java
+++ b/src/com/android/exchange/EasSyncService.java
@@ -38,11 +38,11 @@
 import com.android.exchange.adapter.EmailSyncAdapter;
 import com.android.exchange.adapter.FolderSyncParser;
 import com.android.exchange.adapter.MeetingResponseParser;
-import com.android.exchange.adapter.Parser.EasParserException;
 import com.android.exchange.adapter.PingParser;
 import com.android.exchange.adapter.ProvisionParser;
 import com.android.exchange.adapter.Serializer;
 import com.android.exchange.adapter.Tags;
+import com.android.exchange.adapter.Parser.EasParserException;
 
 import org.apache.http.Header;
 import org.apache.http.HttpEntity;
@@ -765,11 +765,15 @@
      * @throws IOException
      */
     protected void sendMeetingResponse(MeetingResponseRequest req) throws IOException {
+        // Retrieve the message and mailbox; punt if either are null
         Message msg = Message.restoreMessageWithId(mContext, req.mMessageId);
+        if (msg == null) return;
+        Mailbox mailbox = Mailbox.restoreMailboxWithId(mContext, msg.mMailboxKey);
+        if (mailbox == null) return;
         Serializer s = new Serializer();
         s.start(Tags.MREQ_MEETING_RESPONSE).start(Tags.MREQ_REQUEST);
         s.data(Tags.MREQ_USER_RESPONSE, Integer.toString(req.mResponse));
-        s.data(Tags.MREQ_COLLECTION_ID, Long.toString(msg.mMailboxKey));
+        s.data(Tags.MREQ_COLLECTION_ID, mailbox.mServerId);
         s.data(Tags.MREQ_REQ_ID, msg.mServerId);
         s.end().end().done();
         HttpResponse res = sendHttpClientPost("MeetingResponse", s.toByteArray());