mihirjoshi
mihirjoshi

Reputation: 12201

Cannot Modify Realm object while iterating through results

Realm throwing ConcurrentModificationException while updating Model class.

java.util.ConcurrentModificationException: No outside changes to a Realm is allowed while iterating a RealmResults. Use iterators methods instead.

This is my code -

Realm realm = Realm.getDefaultInstance();
RealmQuery<Model> query = realm.where(Model.class);
query.equalTo("decision", getString(android.R.string.yes));
ListIterator<Model> listIterator = query.findAll().listIterator();
realm.beginTransaction();
while (listIterator.hasNext()) {
    Model model = listIterator.next();
    model.setDecision(getString(android.R.string.no));
}
realm.commitTransaction();

Upvotes: 0

Views: 702

Answers (1)

Rami Jemli
Rami Jemli

Reputation: 2641

Just use a normal loop

realm.beginTransaction();
int size = results.size();
for (int i = size-1; i >= 0; i--) {
  results.get(i).setDecision(getString(android.R.string.no));
}
realm.commitTransaction();

Upvotes: 3

Related Questions