Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Java (https://forum.zone-game.info/forumdisplay.php?f=126)
-   -   Java 8 (https://forum.zone-game.info/showthread.php?t=34216)

ProDev 08.04.2014 12:47

Re: Java 8
 
Цитата:

Сообщение от acmi (Сообщение 359525)
Поведение соответствует документации. Если оно не совпадает с Вашими ожиданиями, то это не показатель "нестабильности релиза".
Да, с переходом на новый 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 в конфигах, уж очень много подводных камней.

acmi 08.04.2014 13:00

Re: Java 8
 
Цитата:

Сообщение от ProDev (Сообщение 359527)
+. Про сам код, конечно, другой разговор. Но тут все же факт изменения поведения интересен - это я к тому, что, вполне возможно, это не единственная ситуация, которая себя проявит после обновления до Java 8. А так, конечно, чинить нужно не имплементацию Map, а реализацию логики)

В то же время, все написанное выше про проблемы совместимости остается верным - пока не так просто взять и подменить 1.7 на 1.8 в конфигах, уж очень много подводных камней.

Имхо то, что этот код работал на предыдущих версиях джавы, можно отнести к удаче. При изменении новые значения могли бы попасть в итератор, и это корректное поведение с точки зрения документации.

ProDev 08.04.2014 13:06

Re: Java 8
 
Цитата:

Сообщение от acmi (Сообщение 359528)
Имхо то, что этот код работал на предыдущих версиях джавы, можно отнести к удаче. При изменении новые значения могли бы попасть в итератор, и это корректное поведение с точки зрения документации.

Опять же полностью соглашусь. Но случай все же интересный, прямо know-how :)

SouthBridge 08.04.2014 13:06

Re: Java 8
 
Цитата:

Поведение соответствует документации. Если оно не совпадает с Вашими ожиданиями, то это не показатель "нестабильности релиза".
Все правильно, я и не жаловался что сделали как мне неугодно, доки читаю :)
Код корявый, тут абсолютно бесспорно. Суть моего поста в том, что работоспособность такого кода сводится строго к нулю из-за одной только миграции. Дело то исправимое при наличии исходников, но согласитесь, проблема совместимости сейчас все-же присутствует.


Текущее время: 15:46. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot