Skip to content

Commit 327d182

Browse files
committed
Fix concurrentmodificationexceptions
Signed-off-by: Alex Saveau <[email protected]>
1 parent 7d46339 commit 327d182

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

database/src/main/java/com/firebase/ui/database/FirebaseArray.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,15 @@
2828
import java.util.Iterator;
2929
import java.util.List;
3030
import java.util.ListIterator;
31+
import java.util.concurrent.CopyOnWriteArrayList;
3132

3233
/**
3334
* This class implements a collection on top of a Firebase location.
3435
*/
3536
public class FirebaseArray extends ImmutableList<DataSnapshot> implements ChildEventListener, ValueEventListener {
3637
private Query mQuery;
3738
private boolean mNotifyListeners = true;
38-
private final List<ChangeEventListener> mListeners = new ArrayList<>();
39+
private final List<ChangeEventListener> mListeners = new CopyOnWriteArrayList<>();
3940
private List<SubscriptionEventListener> mSubscribers = new ArrayList<>();
4041
private List<DataSnapshot> mSnapshots = new ArrayList<>();
4142

@@ -138,8 +139,10 @@ private static void checkNotNull(Object o) {
138139
* @return true if {@link FirebaseArray} is listening for change events from the Firebase
139140
* database, false otherwise
140141
*/
141-
public synchronized boolean isListening() {
142-
return !mListeners.isEmpty();
142+
public boolean isListening() {
143+
synchronized (mListeners) {
144+
return !mListeners.isEmpty();
145+
}
143146
}
144147

145148
@Override

0 commit comments

Comments
 (0)