You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by je...@apache.org on 2013/01/24 19:03:20 UTC

git commit: Enhance NettyServer shutdown procedure as it did never exit from its shutdown procedure

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 <je...@apache.org>
Authored: Thu Jan 24 18:57:59 2013 +0100
Committer: Jeff MAURY <je...@apache.org>
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();
     }
 }