diff options
author | Andres Morales <anmorales@google.com> | 2014-08-21 17:07:53 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-08-21 17:07:53 +0000 |
commit | 1874eb9efb479641b9a52f78ecab3a8684016657 (patch) | |
tree | 3df80b7901147ba246fea31f363e53b7b2b4c0fe | |
parent | bb62389c1a5003547e752ac030cfab373cb3d06f (diff) | |
parent | c3f07b9b901e99f559fbd1f59eb54233cd889056 (diff) | |
download | android_packages_apps_Nfc-1874eb9efb479641b9a52f78ecab3a8684016657.tar.gz android_packages_apps_Nfc-1874eb9efb479641b9a52f78ecab3a8684016657.tar.bz2 android_packages_apps_Nfc-1874eb9efb479641b9a52f78ecab3a8684016657.zip |
Merge "Fix ConcurrentModificationException in NFC Unlock" into lmp-dev
-rw-r--r-- | src/com/android/nfc/NfcUnlockManager.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/com/android/nfc/NfcUnlockManager.java b/src/com/android/nfc/NfcUnlockManager.java index d2029392..20471302 100644 --- a/src/com/android/nfc/NfcUnlockManager.java +++ b/src/com/android/nfc/NfcUnlockManager.java @@ -7,6 +7,7 @@ import android.os.RemoteException; import android.util.Log; import java.util.HashMap; +import java.util.Iterator; /** * Singleton for handling NFC Unlock related logic and state. @@ -53,15 +54,17 @@ class NfcUnlockManager { } synchronized boolean tryUnlock(Tag tag) { - for (IBinder binder : mUnlockHandlers.keySet()) { + Iterator<IBinder> iterator = mUnlockHandlers.keySet().iterator(); + while (iterator.hasNext()) { try { + IBinder binder = iterator.next(); UnlockHandlerWrapper handlerWrapper = mUnlockHandlers.get(binder); if (handlerWrapper.mUnlockHandler.onUnlockAttempted(tag)) { return true; } } catch (RemoteException e) { Log.e(TAG, "failed to communicate with unlock handler, removing", e); - mUnlockHandlers.remove(binder); + iterator.remove(); mLockscreenPollMask = recomputePollMask(); } } |