04-08-2014, 12:47 PM
acmi Написал:Поведение соответствует документации. Если оно не совпадает с Вашими ожиданиями, то это не показатель "нестабильности релиза".
Да, с переходом на новый Stream API переписали итераторы и убрали "guarantees to traverse elements as they existed upon construction of the iterator".
В любом случае итерирование изменяемой ConcurrentHashMap непредсказуемо, как вариант использовать промежуточный new HashSet(map.keySet()).
+. Про сам код, конечно, другой разговор. Но тут все же факт изменения поведения интересен - это я к тому, что, вполне возможно, это не единственная ситуация, которая себя проявит после обновления до Java 8. А так, конечно, чинить нужно не имплементацию Map, а реализацию логики)
В то же время, все написанное выше про проблемы совместимости остается верным - пока не так просто взять и подменить 1.7 на 1.8 в конфигах, уж очень много подводных камней.