У меня есть тест, который периодически завершается с ошибкой, когда вызов future.get возвращается до того, как будет выполнен блок finally в Callable, когда будущее отменяется. Вот основной рабочий процесс:
future.cancel(true);
Я вижу InterrupedException
, брошенный в Callable
Основной поток ловит CancellationException
из future.get
вызова
Теперь Callable
звонит finally
.
На моем ноутбуке тест всегда проходит успешно и в большинстве случаев не выполняется на нашем сервере сборки. И моя записная книжка, и сервер сборки работают под управлением OpenJDK 1.7. Есть идеи?