Updated Branches: refs/heads/trunk 8bf822734 -> 07a399546
Enhance NettyServer shutdown procedure as it did never exit from its shutdown procedure Project: http://git-wip-us.apache.org/repos/asf/mina/repo Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/07a39954 Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/07a39954 Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/07a39954 Branch: refs/heads/trunk Commit: 07a39954697247f89c51b10e019a6fc4b89e48f7 Parents: 8bf8227 Author: Jeff MAURY <[email protected]> Authored: Thu Jan 24 18:57:59 2013 +0100 Committer: Jeff MAURY <[email protected]> Committed: Thu Jan 24 19:02:54 2013 +0100 ---------------------------------------------------------------------- .../org/apache/mina/core/NettyBenchmarkServer.java | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina/blob/07a39954/benchmarks/src/test/java/org/apache/mina/core/NettyBenchmarkServer.java ---------------------------------------------------------------------- diff --git a/benchmarks/src/test/java/org/apache/mina/core/NettyBenchmarkServer.java b/benchmarks/src/test/java/org/apache/mina/core/NettyBenchmarkServer.java index 62229b9..44860a3 100644 --- a/benchmarks/src/test/java/org/apache/mina/core/NettyBenchmarkServer.java +++ b/benchmarks/src/test/java/org/apache/mina/core/NettyBenchmarkServer.java @@ -27,6 +27,7 @@ import java.util.Map; import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffers; +import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelFactory; import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.ChannelPipeline; @@ -37,6 +38,8 @@ import org.jboss.netty.channel.ChildChannelStateEvent; import org.jboss.netty.channel.ExceptionEvent; import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.channel.SimpleChannelUpstreamHandler; +import org.jboss.netty.channel.group.ChannelGroup; +import org.jboss.netty.channel.group.DefaultChannelGroup; import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; /** @@ -60,6 +63,8 @@ public class NettyBenchmarkServer implements BenchmarkServer { private ChannelFactory factory; + private ChannelGroup allChannels = new DefaultChannelGroup(); + /** * Allocate a map as attachment for storing attributes. * @@ -104,6 +109,7 @@ public class NettyBenchmarkServer implements BenchmarkServer { public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception { System.out.println("channelOpen"); setAttribute(ctx, STATE_ATTRIBUTE, State.WAIT_FOR_FIRST_BYTE_LENGTH); + allChannels.add(ctx.getChannel()); } @Override @@ -157,19 +163,25 @@ public class NettyBenchmarkServer implements BenchmarkServer { } @Override + public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception { + allChannels.remove(ctx.getChannel()); + } + + @Override public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception { e.getCause().printStackTrace(); } }); } }); - bootstrap.bind(new InetSocketAddress(port)); + allChannels.add(bootstrap.bind(new InetSocketAddress(port))); } /** * {@inheritedDoc} */ public void stop() throws IOException { + allChannels.disconnect().awaitUninterruptibly(); factory.releaseExternalResources(); } }
