Это мой сервисный код, который выдает параллельную модификацию:
public List<PriceTierMI> getMutablePriceTiers() {
if (mutablePriceList == null) {
mutablePriceList = new ArrayList<PriceTierMI>();
} else {
if (mutablePriceList.size() > 0) {
Collections.sort(mutablePriceList , tierComparator);
}
}
return new ArrayList<>(mutablePriceList);
}
public List<PriceTierII> getImmutablePriceTiers() {
return new ArrayList<>(getMutablePriceTiers());
}
**Exception:**
java.util.ConcurrentModificationException
at java.util.ArrayList.sort(ArrayList.java:1473)
at java.util.Collections.sort(Collections.java:186)
at ItemPriceTierSequence.getMutablePriceTiers(ItemPriceTierSequence.java:196)
at ItemPriceTierSequence.getImmutablePriceTiers(ItemPriceTierSequence.java:207)
При начальной отладке я обнаружил, что она сортируется 2 раза без необходимости. Однако после удаления сортировки в getImmutablePriceTiers () я все еще получаю исключение одновременной модификации. Я не уверен, что все еще отсутствует в коде? Любые указатели для решения этой проблемы будут полезны.