From b0a042ffd0b83ece0cc90e128d9f946c2d115d4c Mon Sep 17 00:00:00 2001 From: "nileshagrawal@chromium.org" Date: Sat, 12 Jan 2013 17:05:59 +0000 Subject: Use CopyOnWriteArrayList to safely maintain a list of observers. BUG= Review URL: https://chromiumcodereview.appspot.com/11827041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176553 0039d316-1c4b-4281-b951-d872f2087c98 --- base/android/java/src/org/chromium/base/ActivityStatus.java | 11 ++++++++--- base/android/java/src/org/chromium/base/SystemMonitor.java | 1 - 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'base/android') diff --git a/base/android/java/src/org/chromium/base/ActivityStatus.java b/base/android/java/src/org/chromium/base/ActivityStatus.java index e728870..24b9a66 100644 --- a/base/android/java/src/org/chromium/base/ActivityStatus.java +++ b/base/android/java/src/org/chromium/base/ActivityStatus.java @@ -7,7 +7,7 @@ package org.chromium.base; import android.app.Activity; import android.os.Looper; -import java.util.ArrayList; +import java.util.concurrent.CopyOnWriteArrayList; /** * Provides information about the parent activity's status. @@ -29,9 +29,14 @@ public class ActivityStatus { // testing. private static int sActivityState; - private static final ArrayList sStateListeners = new ArrayList(); + // Use CopyOnWriteArrayList to avoid ConcurrentModificationException when a listener tries to + // remove itself while being notified of a state change. + private static final CopyOnWriteArrayList sStateListeners = + new CopyOnWriteArrayList(); - // Use this interface to listen to all state changes. + /** + * Interface to be implemented by listeners. + */ public interface StateListener { /** * Called when the activity's state changes. diff --git a/base/android/java/src/org/chromium/base/SystemMonitor.java b/base/android/java/src/org/chromium/base/SystemMonitor.java index 30f61a6..138ae28 100644 --- a/base/android/java/src/org/chromium/base/SystemMonitor.java +++ b/base/android/java/src/org/chromium/base/SystemMonitor.java @@ -4,7 +4,6 @@ package org.chromium.base; -import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -- cgit v1.1