diff --git a/testsuite/src/test/java/io/netty/testsuite/transport/socket/SocketShutdownOutputByPeerTest.java b/testsuite/src/test/java/io/netty/testsuite/transport/socket/SocketShutdownOutputByPeerTest.java index 1356797077..9e9b301204 100644 --- a/testsuite/src/test/java/io/netty/testsuite/transport/socket/SocketShutdownOutputByPeerTest.java +++ b/testsuite/src/test/java/io/netty/testsuite/transport/socket/SocketShutdownOutputByPeerTest.java @@ -64,6 +64,7 @@ public class SocketShutdownOutputByPeerTest extends AbstractServerSocketTest { assertTrue(h.ch.isInputShutdown()); assertFalse(h.ch.isOutputShutdown()); assertEquals(1, h.closure.getCount()); + Thread.sleep(100); assertEquals(1, h.halfClosureCount.intValue()); } finally { s.close(); @@ -101,6 +102,7 @@ public class SocketShutdownOutputByPeerTest extends AbstractServerSocketTest { assertTrue(h.ch.isOutputShutdown()); assertEquals(1, h.halfClosure.getCount()); + Thread.sleep(100); assertEquals(0, h.halfClosureCount.intValue()); } finally { s.close(); diff --git a/transport/src/main/java/io/netty/channel/nio/AbstractNioByteChannel.java b/transport/src/main/java/io/netty/channel/nio/AbstractNioByteChannel.java index a987f3eb64..a9041d9f00 100755 --- a/transport/src/main/java/io/netty/channel/nio/AbstractNioByteChannel.java +++ b/transport/src/main/java/io/netty/channel/nio/AbstractNioByteChannel.java @@ -119,6 +119,7 @@ public abstract class AbstractNioByteChannel extends AbstractNioChannel { setInputShutdown(); if (isOpen()) { if (Boolean.TRUE.equals(config().getOption(ChannelOption.ALLOW_HALF_CLOSURE))) { + key.interestOps(key.interestOps() & ~readInterestOp); pipeline.fireUserEventTriggered(ChannelInputShutdownEvent.INSTANCE); } else { close(voidFuture());