diff options
| author | Vasu Nori <vnori@google.com> | 2010-04-15 11:25:51 -0700 |
|---|---|---|
| committer | Vasu Nori <vnori@google.com> | 2010-04-16 15:50:41 -0700 |
| commit | 20f549fd2f40db524242c9038d7d63356adf95fc (patch) | |
| tree | 5c3ac7031f0bc411bb0f433121038814abcd8180 /core/java/android/database/DataSetObservable.java | |
| parent | 0d8d70bba458cd0b394313e0e61364f1bce07644 (diff) | |
several minor bugs and things listed below
bug:1648729
print warning if a requery is attemped on main thread
bug:2459293
browser death because of NoSuchElementException. don't use iterator
to march thru the ArrayList. use old style for() loop.
bug:1609474
don't allow downgrades of databases
other stuff
use LRUcache to maintain statement-cache in SQLiteDatabase
Change-Id: I3a42022162f4dfcc75f7d0cfcad8f20f1d193249
Diffstat (limited to 'core/java/android/database/DataSetObservable.java')
| -rw-r--r-- | core/java/android/database/DataSetObservable.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/core/java/android/database/DataSetObservable.java b/core/java/android/database/DataSetObservable.java index 9200e8135316..51c72c1877e8 100644 --- a/core/java/android/database/DataSetObservable.java +++ b/core/java/android/database/DataSetObservable.java @@ -27,8 +27,12 @@ public class DataSetObservable extends Observable<DataSetObserver> { */ public void notifyChanged() { synchronized(mObservers) { - for (DataSetObserver observer : mObservers) { - observer.onChanged(); + // since onChanged() is implemented by the app, it could do anything, including + // removing itself from {@link mObservers} - and that could cause problems if + // an iterator is used on the ArrayList {@link mObservers}. + // to avoid such problems, just march thru the list in the reverse order. + for (int i = mObservers.size() - 1; i >= 0; i--) { + mObservers.get(i).onChanged(); } } } @@ -39,8 +43,8 @@ public class DataSetObservable extends Observable<DataSetObserver> { */ public void notifyInvalidated() { synchronized (mObservers) { - for (DataSetObserver observer : mObservers) { - observer.onInvalidated(); + for (int i = mObservers.size() - 1; i >= 0; i--) { + mObservers.get(i).onInvalidated(); } } } |
