[jboss-cvs] JBoss Messaging SVN: r7577 - trunk/src/main/org/jboss/messaging/integration/transports/netty.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jul 16 05:38:21 EDT 2009


Author: jmesnil
Date: 2009-07-16 05:38:21 -0400 (Thu, 16 Jul 2009)
New Revision: 7577

Modified:
   trunk/src/main/org/jboss/messaging/integration/transports/netty/NettyAcceptor.java
Log:
NettyAcceptor start/stop fix

* use a VirtualExecutorService to  wrap the thread pool in start()
* call channelFactory.releaseExternalResources() to shutdown the VirtualExecutorService in stop()

Modified: trunk/src/main/org/jboss/messaging/integration/transports/netty/NettyAcceptor.java
===================================================================
--- trunk/src/main/org/jboss/messaging/integration/transports/netty/NettyAcceptor.java	2009-07-15 14:03:24 UTC (rev 7576)
+++ trunk/src/main/org/jboss/messaging/integration/transports/netty/NettyAcceptor.java	2009-07-16 09:38:21 UTC (rev 7577)
@@ -73,6 +73,7 @@
  * @author <a href="ataylor at redhat.com">Andy Taylor</a>
  * @author <a href="tim.fox at jboss.com">Tim Fox</a>
  * @author <a href="tlee at redhat.com">Trustin Lee</a>
+ * @author <a href="jmesnil at redhat.com">Jeff Mesnil</a>
  * @version $Rev$, $Date$
  */
 public class NettyAcceptor implements Acceptor
@@ -129,8 +130,6 @@
    
    private final Executor threadPool;
 
-   private final ScheduledExecutorService scheduledThreadPool;
-
    public NettyAcceptor(final Map<String, Object> configuration,
                         final BufferHandler handler,
                         final ConnectionLifeCycleListener listener,
@@ -141,8 +140,6 @@
 
       this.listener = listener;
 
-      this.scheduledThreadPool = scheduledThreadPool;
-      
       this.sslEnabled = ConfigurationHelper.getBooleanProperty(TransportConstants.SSL_ENABLED_PROP_NAME,
                                                                TransportConstants.DEFAULT_SSL_ENABLED,
                                                                configuration);
@@ -159,7 +156,7 @@
                                                                 TransportConstants.DEFAULT_HTTP_RESPONSE_TIME,
                                                                 configuration);
          httpKeepAliveRunnable = new HttpKeepAliveRunnable();
-         Future<?> future = this.scheduledThreadPool.scheduleAtFixedRate(httpKeepAliveRunnable, httpServerScanPeriod, httpServerScanPeriod, TimeUnit.MILLISECONDS);
+         Future<?> future = scheduledThreadPool.scheduleAtFixedRate(httpKeepAliveRunnable, httpServerScanPeriod, httpServerScanPeriod, TimeUnit.MILLISECONDS);
          httpKeepAliveRunnable.setFuture(future);
       }
       else
@@ -225,17 +222,19 @@
          return;
       }
 
+      VirtualExecutorService virtualExecutor = new VirtualExecutorService(threadPool);
+
       if (useInvm)
       {
          channelFactory = new DefaultLocalServerChannelFactory();
       }
       else if (useNio)
       {
-         channelFactory = new NioServerSocketChannelFactory(threadPool, threadPool);
+         channelFactory = new NioServerSocketChannelFactory(virtualExecutor, virtualExecutor);
       }
       else
       {
-         channelFactory = new OioServerSocketChannelFactory(threadPool, threadPool);
+         channelFactory = new OioServerSocketChannelFactory(virtualExecutor, virtualExecutor);
       }
       bootstrap = new ServerBootstrap(channelFactory);
 
@@ -373,7 +372,7 @@
       
       if (!paused)
       {
-         pause();
+         serverChannelGroup.close().awaitUninterruptibly();
       }
 
       if (httpKeepAliveRunnable != null)
@@ -396,7 +395,8 @@
             }
          }
       }
-      
+
+      channelFactory.releaseExternalResources();
       channelFactory = null;  
       
       for (Connection connection : connections.values())




More information about the jboss-cvs-commits mailing list