Snap for 7316203 from 10c3382b05ec24faec2c6079a92983cc7579ef0d to rvc-platform-release

Change-Id: I4b30c970801f8a42417d74db3bd739819f1ba96c
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");