summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndres Morales <anmorales@google.com>2014-08-21 17:07:53 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-08-21 17:07:53 +0000
commit1874eb9efb479641b9a52f78ecab3a8684016657 (patch)
tree3df80b7901147ba246fea31f363e53b7b2b4c0fe
parentbb62389c1a5003547e752ac030cfab373cb3d06f (diff)
parentc3f07b9b901e99f559fbd1f59eb54233cd889056 (diff)
downloadandroid_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.java7
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();
}
}