Skip to content

Commit a40adba

Browse files
author
Amal Elshihaby
committed
Use a synchronizedList for document's change listeners to avoid ConcurrentModificationException
1 parent 6db0e99 commit a40adba

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

src/main/java/com/couchbase/lite/Document.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public class Document {
3333
/**
3434
* Change Listeners
3535
*/
36-
private List<ChangeListener> changeListeners = new ArrayList<ChangeListener>();
36+
private List<ChangeListener> changeListeners = Collections.synchronizedList(new ArrayList<ChangeListener>());
3737

3838
/**
3939
* Constructor
@@ -494,8 +494,10 @@ else if (rev.isDeleted())
494494
}
495495

496496
if (notify) {
497-
for (ChangeListener listener : changeListeners) {
498-
listener.changed(new ChangeEvent(this, change));
497+
synchronized (changeListeners) {
498+
for (ChangeListener listener : changeListeners) {
499+
listener.changed(new ChangeEvent(this, change));
500+
}
499501
}
500502
}
501503
}

0 commit comments

Comments
 (0)