В Java версий ниже 11 был предусмотрен API
java.nio.channels.Selector, позволяющие переопределить предыдущую
информацию о готовности при использовании
java.nio.channels.Selector.selectNow() или java.nio.channels.Selector.select(). Согласно спецификации, метод
java.nio.channels.Selector.selectNow() должен был удалять аннулированные ключи, однако в версиях Java ниже 11 он не делал этого.
Согласно спецификации, информация о готовности не должна переопределяться и
должна храниться вплоть до вызова метода
java.nio.channels.Selector.selectNow() или java.nio.channels.Selector.clear() для удаления аннулированных ключей.
В Java 11 принцип работы был приведен в соответствие со спецификацией, поэтому
при наличии кода, написанного для обхода существовавшей раньше ошибки, могут
потребоваться изменения.
За дополнительной информацией о классе java.nio.channels.Selector
обратитесь к
документации Java по классу java.nio.channels.Selector.
Дополнительную информацию об изменениях в JDK 11 можно найти в публикации JDK 11: информация о выпуске.