Author: norman
Date: Fri Aug 26 09:45:15 2011
New Revision: 1162049

URL: http://svn.apache.org/viewvc?rev=1162049&view=rev
Log:
Zero-file-copy MAY only be used when COMPRESS is not activated. See JAMES-1306

Modified:
    
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ChannelImapResponseWriter.java

Modified: 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ChannelImapResponseWriter.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ChannelImapResponseWriter.java?rev=1162049&r1=1162048&r2=1162049&view=diff
==============================================================================
--- 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ChannelImapResponseWriter.java
 (original)
+++ 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ChannelImapResponseWriter.java
 Fri Aug 26 09:45:15 2011
@@ -28,8 +28,10 @@ import org.apache.james.imap.encode.Imap
 import org.apache.james.imap.message.response.Literal;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.jboss.netty.channel.Channel;
+import org.jboss.netty.channel.ChannelPipeline;
 import org.jboss.netty.channel.DefaultFileRegion;
 import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
+import org.jboss.netty.handler.codec.compression.ZlibEncoder;
 import org.jboss.netty.handler.ssl.SslHandler;
 import org.jboss.netty.handler.stream.ChunkedNioFile;
 import org.jboss.netty.handler.stream.ChunkedStream;
@@ -68,10 +70,11 @@ public class ChannelImapResponseWriter i
         InputStream in = literal.getInputStream();
         if (in instanceof FileInputStream && channel.getFactory() instanceof 
NioServerSocketChannelFactory) {
             FileChannel fc = ((FileInputStream) in).getChannel();
-            // Zero-copy is only possible if no SSL/TLS is in place
+            // Zero-copy is only possible if no SSL/TLS  and no COMPRESS is in 
place
             //
-            // See JAMES-1305
-            if (zeroCopy && channel.getPipeline().get(SslHandler.class) == 
null) {
+            // See JAMES-1305 and JAMES-1306
+            ChannelPipeline cp = channel.getPipeline();
+            if (zeroCopy && cp.get(SslHandler.class) == null && 
cp.get(ZlibEncoder.class) == null ) {
                 channel.write(new DefaultFileRegion(fc, fc.position(), 
literal.size()));
             } else {
                 channel.write(new ChunkedNioFile(fc, 8192));



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to