diff --git a/codec-http/src/test/java/io/netty/handler/codec/spdy/NioNioSocketSpdyEchoTest.java b/codec-http/src/test/java/io/netty/handler/codec/spdy/NioNioSocketSpdyEchoTest.java index b50262d3f2..b5aad7453f 100644 --- a/codec-http/src/test/java/io/netty/handler/codec/spdy/NioNioSocketSpdyEchoTest.java +++ b/codec-http/src/test/java/io/netty/handler/codec/spdy/NioNioSocketSpdyEchoTest.java @@ -26,18 +26,15 @@ public class NioNioSocketSpdyEchoTest extends AbstractSocketSpdyEchoTest { @Override protected ChannelBootstrap newClientBootstrap() { - ChannelBootstrap b = new ChannelBootstrap(); - b.eventLoop(new SelectorEventLoop()); - b.channel(new NioSocketChannel()); - return b; + return new ChannelBootstrap() + .eventLoop(new SelectorEventLoop()) + .channel(new NioSocketChannel()); } @Override protected ServerChannelBootstrap newServerBootstrap() { - ServerChannelBootstrap b = new ServerChannelBootstrap(); - b.eventLoop(new SelectorEventLoop(), new SelectorEventLoop()); - b.channel(new NioServerSocketChannel()); - return b; + return new ServerChannelBootstrap() + .eventLoop(new SelectorEventLoop(), new SelectorEventLoop()) + .channel(new NioServerSocketChannel()); } - } diff --git a/codec-http/src/test/java/io/netty/handler/codec/spdy/NioOioSocketSpdyEchoTest.java b/codec-http/src/test/java/io/netty/handler/codec/spdy/NioOioSocketSpdyEchoTest.java index 72dc70a642..46b403de23 100644 --- a/codec-http/src/test/java/io/netty/handler/codec/spdy/NioOioSocketSpdyEchoTest.java +++ b/codec-http/src/test/java/io/netty/handler/codec/spdy/NioOioSocketSpdyEchoTest.java @@ -16,20 +16,26 @@ package io.netty.handler.codec.spdy; -import io.netty.channel.ChannelFactory; -import io.netty.channel.socket.nio.NioClientSocketChannelFactory; -import io.netty.channel.socket.oio.OioServerSocketChannelFactory; +import io.netty.channel.ChannelBootstrap; +import io.netty.channel.ServerChannelBootstrap; +import io.netty.channel.socket.nio.NioSocketChannel; +import io.netty.channel.socket.nio.SelectorEventLoop; +import io.netty.channel.socket.oio.BlockingChannelEventLoop; +import io.netty.channel.socket.oio.OioServerSocketChannel; public class NioOioSocketSpdyEchoTest extends AbstractSocketSpdyEchoTest { @Override - protected ChannelFactory newClientBootstrap() { - return new NioClientSocketChannelFactory(executor); + protected ChannelBootstrap newClientBootstrap() { + return new ChannelBootstrap() + .eventLoop(new SelectorEventLoop()) + .channel(new NioSocketChannel()); } @Override - protected ChannelFactory newServerBootstrap() { - return new OioServerSocketChannelFactory(executor, executor); + protected ServerChannelBootstrap newServerBootstrap() { + return new ServerChannelBootstrap() + .eventLoop(new BlockingChannelEventLoop(), new BlockingChannelEventLoop()) + .channel(new OioServerSocketChannel()); } - } diff --git a/codec-http/src/test/java/io/netty/handler/codec/spdy/OioNioSocketSpdyEchoTest.java b/codec-http/src/test/java/io/netty/handler/codec/spdy/OioNioSocketSpdyEchoTest.java index 86b48521f9..083983ee6a 100644 --- a/codec-http/src/test/java/io/netty/handler/codec/spdy/OioNioSocketSpdyEchoTest.java +++ b/codec-http/src/test/java/io/netty/handler/codec/spdy/OioNioSocketSpdyEchoTest.java @@ -16,20 +16,26 @@ package io.netty.handler.codec.spdy; -import io.netty.channel.ChannelFactory; -import io.netty.channel.socket.nio.NioServerSocketChannelFactory; -import io.netty.channel.socket.oio.OioClientSocketChannelFactory; +import io.netty.channel.ChannelBootstrap; +import io.netty.channel.ServerChannelBootstrap; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import io.netty.channel.socket.nio.SelectorEventLoop; +import io.netty.channel.socket.oio.BlockingChannelEventLoop; +import io.netty.channel.socket.oio.OioSocketChannel; public class OioNioSocketSpdyEchoTest extends AbstractSocketSpdyEchoTest { @Override - protected ChannelFactory newClientBootstrap() { - return new OioClientSocketChannelFactory(executor); + protected ChannelBootstrap newClientBootstrap() { + return new ChannelBootstrap() + .eventLoop(new BlockingChannelEventLoop()) + .channel(new OioSocketChannel()); } @Override - protected ChannelFactory newServerBootstrap() { - return new NioServerSocketChannelFactory(executor); + protected ServerChannelBootstrap newServerBootstrap() { + return new ServerChannelBootstrap() + .eventLoop(new SelectorEventLoop(), new SelectorEventLoop()) + .channel(new NioServerSocketChannel()); } - } diff --git a/codec-http/src/test/java/io/netty/handler/codec/spdy/OioOioSocketSpdyEchoTest.java b/codec-http/src/test/java/io/netty/handler/codec/spdy/OioOioSocketSpdyEchoTest.java index 5f19f8152e..88d8e6364e 100644 --- a/codec-http/src/test/java/io/netty/handler/codec/spdy/OioOioSocketSpdyEchoTest.java +++ b/codec-http/src/test/java/io/netty/handler/codec/spdy/OioOioSocketSpdyEchoTest.java @@ -16,20 +16,25 @@ package io.netty.handler.codec.spdy; -import io.netty.channel.ChannelFactory; -import io.netty.channel.socket.oio.OioClientSocketChannelFactory; -import io.netty.channel.socket.oio.OioServerSocketChannelFactory; +import io.netty.channel.ChannelBootstrap; +import io.netty.channel.ServerChannelBootstrap; +import io.netty.channel.socket.oio.BlockingChannelEventLoop; +import io.netty.channel.socket.oio.OioServerSocketChannel; +import io.netty.channel.socket.oio.OioSocketChannel; public class OioOioSocketSpdyEchoTest extends AbstractSocketSpdyEchoTest { @Override - protected ChannelFactory newClientBootstrap() { - return new OioClientSocketChannelFactory(executor); + protected ChannelBootstrap newClientBootstrap() { + return new ChannelBootstrap() + .eventLoop(new BlockingChannelEventLoop()) + .channel(new OioSocketChannel()); } @Override - protected ChannelFactory newServerBootstrap() { - return new OioServerSocketChannelFactory(executor, executor); + protected ServerChannelBootstrap newServerBootstrap() { + return new ServerChannelBootstrap() + .eventLoop(new BlockingChannelEventLoop(), new BlockingChannelEventLoop()) + .channel(new OioServerSocketChannel()); } - } diff --git a/transport/src/main/java/io/netty/channel/socket/oio/OioServerSocketChannel.java b/transport/src/main/java/io/netty/channel/socket/oio/OioServerSocketChannel.java index b192bc059e..730ef4a767 100644 --- a/transport/src/main/java/io/netty/channel/socket/oio/OioServerSocketChannel.java +++ b/transport/src/main/java/io/netty/channel/socket/oio/OioServerSocketChannel.java @@ -153,6 +153,10 @@ public class OioServerSocketChannel extends AbstractServerChannel @Override protected int doRead(Queue buf) throws Exception { + if (socket.isClosed()) { + return -1; + } + Socket s = null; try { s = socket.accept(); diff --git a/transport/src/main/java/io/netty/channel/socket/oio/OioSocketChannel.java b/transport/src/main/java/io/netty/channel/socket/oio/OioSocketChannel.java index 2675492c7a..436a3c0c4a 100644 --- a/transport/src/main/java/io/netty/channel/socket/oio/OioSocketChannel.java +++ b/transport/src/main/java/io/netty/channel/socket/oio/OioSocketChannel.java @@ -193,6 +193,9 @@ public class OioSocketChannel extends AbstractChannel @Override protected int doRead(ChannelBuffer buf) throws Exception { + if (socket.isClosed()) { + return -1; + } try { int readBytes = buf.writeBytes(is, buf.writableBytes()); return readBytes;