OSDN Git Service

Make removeOnAccountsUpdateListener cope with null handlers.
authorBryan Mawhinney <bryanmawhinney@google.com>
Thu, 24 Sep 2009 13:50:25 +0000 (14:50 +0100)
committerBryan Mawhinney <bryanmawhinney@google.com>
Thu, 24 Sep 2009 13:50:25 +0000 (14:50 +0100)
Previously, if callers registered OnAccountsUpdateListeners with a null handler,
removeOnAccountsUpdateListener would fail attempting to remove the listener.

Change-Id: If9906d3711f816e60c4b491b7f33671f089ac00f

core/java/android/accounts/AccountManager.java

index 1ee7f60..2979072 100644 (file)
@@ -859,9 +859,10 @@ public class AccountManager {
             throw new IllegalArgumentException("the listener is null");
         }
         synchronized (mAccountsUpdatedListeners) {
-            if (mAccountsUpdatedListeners.remove(listener) == null) {
+            if (!mAccountsUpdatedListeners.containsKey(listener)) {
                 throw new IllegalStateException("this listener was not previously added");
             }
+            mAccountsUpdatedListeners.remove(listener);
             if (mAccountsUpdatedListeners.isEmpty()) {
                 mContext.unregisterReceiver(mAccountsChangedBroadcastReceiver);
             }