diff -r ea044aedc2b6 -r 455612b3161a src/java.base/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java --- a/src/java.base/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java Wed Nov 20 09:12:07 2019 +0100 +++ b/src/java.base/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java Wed Nov 20 08:35:53 2019 +0000 @@ -156,6 +156,13 @@ int newEvents = ski.translateInterestOps(); int registeredEvents = ski.registeredEvents(); + + // DatagramChannelImpl::disconnect has reset socket + if (ski.getAndClearReset() && registeredEvents != 0) { + KQueue.register(kqfd, fd, EVFILT_READ, EV_DELETE); + registeredEvents = 0; + } + if (newEvents != registeredEvents) { // add or delete interest in read events