I get a weird problem. Getting java.util.ConcurrentModificationException. But I’m not modifying the current collection. Please help.
Method Call
setAllAddress((List<AddressBean>) usrProfileResp.getAddressBeanList());
setShippingAddresses(getAllAddress());
Methods
public List<AddressBean> getAllAddress() {
return allAddress;
}
public void setShippingAddresses(List<AddressTokenBean> shippingAddresses) {
shippingAddresses = new ArrayList<AddressBean>();
List<AddressBean> addresses = getAllAddress();
if (addresses != null && addresses.size() > 0) {
for (AddressBean addr : addresses) { // EXCEPTION OCCURS HERE
if (!Constants.BILLING_ADDRESS.equals(addr.getAddressType())) {
shippingAddresses.add(addr);
}
}
}
}
The most likely explaination is that
addressesandshippingAddressesrefer to the same collection. You can check this in your debugger.Does getAllAddresses() use shippingAddresses at all?
Are you sure this collection is not being modifed in another thread? Does this happen all the time or only occasionally?