You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2011/10/29 20:57:44 UTC
svn commit: r1194972 - in
/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl:
AbstractAsyncServer.java AbstractChannelPipelineFactory.java
Author: norman
Date: Sat Oct 29 18:57:43 2011
New Revision: 1194972
URL: http://svn.apache.org/viewvc?rev=1194972&view=rev
Log:
Stop Timer on unbind. See PROTOCOLS-46
Modified:
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractAsyncServer.java
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java
Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractAsyncServer.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractAsyncServer.java?rev=1194972&r1=1194971&r2=1194972&view=diff
==============================================================================
--- james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractAsyncServer.java (original)
+++ james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractAsyncServer.java Sat Oct 29 18:57:43 2011
@@ -31,6 +31,7 @@ import org.jboss.netty.channel.group.Cha
import org.jboss.netty.channel.group.DefaultChannelGroup;
import org.jboss.netty.channel.socket.ServerSocketChannelFactory;
import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
+import org.jboss.netty.util.ExternalResourceReleasable;
/**
* Abstract base class for Servers which want to use async io
@@ -122,6 +123,10 @@ public abstract class AbstractAsyncServe
*/
public synchronized void unbind() {
if (started == false) return;
+ ChannelPipelineFactory factory = bootstrap.getPipelineFactory();
+ if (factory instanceof ExternalResourceReleasable) {
+ ((ExternalResourceReleasable) factory).releaseExternalResources();
+ }
channels.close().awaitUninterruptibly();
bootstrap.releaseExternalResources();
started = false;
Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java?rev=1194972&r1=1194971&r2=1194972&view=diff
==============================================================================
--- james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java (original)
+++ james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelPipelineFactory.java Sat Oct 29 18:57:43 2011
@@ -28,6 +28,7 @@ import org.jboss.netty.handler.codec.fra
import org.jboss.netty.handler.codec.frame.Delimiters;
import org.jboss.netty.handler.execution.ExecutionHandler;
import org.jboss.netty.handler.stream.ChunkedWriteHandler;
+import org.jboss.netty.util.ExternalResourceReleasable;
import org.jboss.netty.util.HashedWheelTimer;
/**
@@ -35,7 +36,7 @@ import org.jboss.netty.util.HashedWheelT
*
*
*/
-public abstract class AbstractChannelPipelineFactory implements ChannelPipelineFactory{
+public abstract class AbstractChannelPipelineFactory implements ChannelPipelineFactory, ExternalResourceReleasable{
public final static int MAX_LINE_LENGTH = 8192;
private final ConnectionLimitUpstreamHandler connectionLimitHandler;
@@ -98,6 +99,11 @@ public abstract class AbstractChannelPip
* @return coreHandeler
*/
protected abstract ChannelUpstreamHandler createHandler();
+
+ @Override
+ public void releaseExternalResources() {
+ timer.stop();
+ }
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org