diff --git a/src/org/thoughtcrime/securesms/mms/OutgoingLegacyMmsConnection.java b/src/org/thoughtcrime/securesms/mms/OutgoingLegacyMmsConnection.java index ba55e94dac..0d3056df40 100644 --- a/src/org/thoughtcrime/securesms/mms/OutgoingLegacyMmsConnection.java +++ b/src/org/thoughtcrime/securesms/mms/OutgoingLegacyMmsConnection.java @@ -20,6 +20,7 @@ import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; +import android.support.annotation.NonNull; import android.util.Log; import org.apache.http.Header; @@ -70,7 +71,7 @@ public class OutgoingLegacyMmsConnection extends LegacyMmsConnection implements } @Override - public SendConf send(byte[] pduBytes) throws UndeliverableMessageException { + public SendConf send(@NonNull byte[] pduBytes) throws UndeliverableMessageException { try { MmsRadio radio = MmsRadio.getInstance(context); diff --git a/src/org/thoughtcrime/securesms/mms/OutgoingLollipopMmsConnection.java b/src/org/thoughtcrime/securesms/mms/OutgoingLollipopMmsConnection.java index d83a059643..b4178da103 100644 --- a/src/org/thoughtcrime/securesms/mms/OutgoingLollipopMmsConnection.java +++ b/src/org/thoughtcrime/securesms/mms/OutgoingLollipopMmsConnection.java @@ -21,6 +21,7 @@ import android.content.Context; import android.content.Intent; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; +import android.support.annotation.NonNull; import android.telephony.SmsManager; import android.util.Log; @@ -57,7 +58,7 @@ public class OutgoingLollipopMmsConnection extends LollipopMmsConnection impleme @Override @TargetApi(VERSION_CODES.LOLLIPOP) - public synchronized SendConf send(byte[] pduBytes) throws UndeliverableMessageException { + public synchronized SendConf send(@NonNull byte[] pduBytes) throws UndeliverableMessageException { beginTransaction(); try { MmsBodyProvider.Pointer pointer = MmsBodyProvider.makeTemporaryPointer(getContext()); @@ -74,6 +75,10 @@ public class OutgoingLollipopMmsConnection extends LollipopMmsConnection impleme Log.w(TAG, "MMS broadcast received and processed."); pointer.close(); + if (response == null) { + throw new UndeliverableMessageException("Null response."); + } + return (SendConf) new PduParser(response).parse(); } catch (IOException | TimeoutException e) { throw new UndeliverableMessageException(e); diff --git a/src/org/thoughtcrime/securesms/mms/OutgoingMmsConnection.java b/src/org/thoughtcrime/securesms/mms/OutgoingMmsConnection.java index 94cd324078..6e0ff1f474 100644 --- a/src/org/thoughtcrime/securesms/mms/OutgoingMmsConnection.java +++ b/src/org/thoughtcrime/securesms/mms/OutgoingMmsConnection.java @@ -1,9 +1,11 @@ package org.thoughtcrime.securesms.mms; +import android.support.annotation.NonNull; + import org.thoughtcrime.securesms.transport.UndeliverableMessageException; import ws.com.google.android.mms.pdu.SendConf; public interface OutgoingMmsConnection { - SendConf send(byte[] pduBytes) throws UndeliverableMessageException; + SendConf send(@NonNull byte[] pduBytes) throws UndeliverableMessageException; }