diff -r f1a8ec1a6972 -r 814bd31f8da0 src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java --- a/src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java Thu Mar 29 22:12:05 2018 -0700 +++ b/src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java Fri Mar 30 08:28:09 2018 +0100 @@ -1229,10 +1229,9 @@ /** * Translates native poll revent set into a ready operation set */ - public boolean translateReadyOps(int ops, int initialOps, - SelectionKeyImpl sk) { - int intOps = sk.nioInterestOps(); // Do this just once, it synchronizes - int oldOps = sk.nioReadyOps(); + public boolean translateReadyOps(int ops, int initialOps, SelectionKeyImpl ski) { + int intOps = ski.nioInterestOps(); + int oldOps = ski.nioReadyOps(); int newOps = initialOps; if ((ops & Net.POLLNVAL) != 0) { @@ -1244,7 +1243,7 @@ if ((ops & (Net.POLLERR | Net.POLLHUP)) != 0) { newOps = intOps; - sk.nioReadyOps(newOps); + ski.nioReadyOps(newOps); return (newOps & ~oldOps) != 0; } @@ -1256,16 +1255,16 @@ ((intOps & SelectionKey.OP_WRITE) != 0)) newOps |= SelectionKey.OP_WRITE; - sk.nioReadyOps(newOps); + ski.nioReadyOps(newOps); return (newOps & ~oldOps) != 0; } - public boolean translateAndUpdateReadyOps(int ops, SelectionKeyImpl sk) { - return translateReadyOps(ops, sk.nioReadyOps(), sk); + public boolean translateAndUpdateReadyOps(int ops, SelectionKeyImpl ski) { + return translateReadyOps(ops, ski.nioReadyOps(), ski); } - public boolean translateAndSetReadyOps(int ops, SelectionKeyImpl sk) { - return translateReadyOps(ops, 0, sk); + public boolean translateAndSetReadyOps(int ops, SelectionKeyImpl ski) { + return translateReadyOps(ops, 0, ski); } /** @@ -1295,16 +1294,15 @@ /** * Translates an interest operation set into a native poll event set */ - public void translateAndSetInterestOps(int ops, SelectionKeyImpl sk) { + public int translateInterestOps(int ops) { int newOps = 0; - if ((ops & SelectionKey.OP_READ) != 0) newOps |= Net.POLLIN; if ((ops & SelectionKey.OP_WRITE) != 0) newOps |= Net.POLLOUT; if ((ops & SelectionKey.OP_CONNECT) != 0) newOps |= Net.POLLIN; - sk.selector.putEventOps(sk, newOps); + return newOps; } public FileDescriptor getFD() {