Я пытаюсь делать параллельные запросы, используя службу executor. После его завершения я получаю доступ к Future с помощью приведенного ниже кода на Java 7. Все, что я пытаюсь - это сохранить его в новом списке под названием infos
. Я вижу ConcurrentModificationException
исключение. Любой совет, как от него избавиться?
List<Info> infos = new ArrayList<>();
for(Future<Info> fut : list){
try {
infos.add(fut.get()); // ConcurrentModificationException happening here...
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
// send infos
Обновление -
private List<Future<Info>> list;
Future<Info> future = executor.submit(callable);
list.add(future);