Snap for 7085329 from 5970b0c1dbfe13bac7ad098b3fed4d095c26f672 to rvc-d2-release

Change-Id: I9274b5b814c96645cb0ca7d0628fd352bca4b7a2
diff --git a/src/java/com/android/ims/FeatureConnection.java b/src/java/com/android/ims/FeatureConnection.java
index f6668b5..97736b9 100644
--- a/src/java/com/android/ims/FeatureConnection.java
+++ b/src/java/com/android/ims/FeatureConnection.java
@@ -34,6 +34,8 @@
 
 import java.util.concurrent.Executor;
 
+import java.util.NoSuchElementException;
+
 /**
  * Base class of MmTelFeatureConnection and RcsFeatureConnection.
  */
@@ -102,7 +104,8 @@
                     mBinder.linkToDeath(mDeathRecipient, 0);
                 }
             } catch (RemoteException e) {
-                // No need to do anything if the binder is already dead.
+                Log.w(TAG, "setBinder: linkToDeath on already dead Binder, setting null");
+                mBinder = null;
             }
         }
     }
@@ -127,8 +130,12 @@
             if (mIsAvailable) {
                 mIsAvailable = false;
                 mRegistrationBinder = null;
-                if (mBinder != null) {
-                    mBinder.unlinkToDeath(mDeathRecipient, 0);
+                try {
+                    if (mBinder != null) {
+                        mBinder.unlinkToDeath(mDeathRecipient, 0);
+                    }
+                } catch (NoSuchElementException e) {
+                    Log.w(TAG, "onRemovedOrDied: unlinkToDeath called on unlinked Binder.");
                 }
                 if (mStatusCallback != null) {
                     Log.d(TAG, "onRemovedOrDied: notifyUnavailable");