Нужна помощь для разрешения одновременной модификации - PullRequest
0 голосов
/ 23 июня 2019

Это мой сервисный код, который выдает параллельную модификацию:

    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 () я все еще получаю исключение одновременной модификации. Я не уверен, что все еще отсутствует в коде? Любые указатели для решения этой проблемы будут полезны.

...