From 4dd9df58a6bf662264f0aebddfb14b850358f9b9 Mon Sep 17 00:00:00 2001 From: Sailesh Nepal Date: Thu, 10 Jul 2014 18:15:15 -0700 Subject: [PATCH] Fix exception in ConnectionServiceAdapter.binderDied Bug: 16215975 Change-Id: I49e7c77c01f306995bb743523436c7620c48a568 --- .../java/android/telecomm/ConnectionServiceAdapter.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/telecomm/java/android/telecomm/ConnectionServiceAdapter.java b/telecomm/java/android/telecomm/ConnectionServiceAdapter.java index b60e7c63da886..f71544bb8f1ad 100644 --- a/telecomm/java/android/telecomm/ConnectionServiceAdapter.java +++ b/telecomm/java/android/telecomm/ConnectionServiceAdapter.java @@ -28,6 +28,7 @@ import com.android.internal.telecomm.RemoteServiceCallback; import java.util.ArrayList; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Set; @@ -61,9 +62,12 @@ final class ConnectionServiceAdapter implements DeathRecipient { /** ${inheritDoc} */ @Override public void binderDied() { - for (IConnectionServiceAdapter adapter : mAdapters) { + Iterator it = mAdapters.iterator(); + while (it.hasNext()) { + IConnectionServiceAdapter adapter = it.next(); if (!adapter.asBinder().isBinderAlive()) { - removeAdapter(adapter); + it.remove(); + adapter.asBinder().unlinkToDeath(this, 0); } } }